Lesson 15: Error Handling | Learn and Practice with HolyPython.com (original) (raw)

PART I: In part one we will look at Built-in Python errors that you may encounter. Getting familiar with these can help you understand the issue fast and feel more confident. Here are some of the most common ones which we will look closely:

PART II: In part two, we will look at the errors in a more general programming sense. It can help your programming skills to understand that not all the errors are caught by the compiler all the time and some of them have to do with results you’d like to achieve.

  1. Syntax Error
  2. Semantic Error
  3. Runtime Error

Function: N/A

No new functions will be introduced in this lesson.

Used Where?

Error Handling is very useful for a programmer to quickly categorize and understand what kind of mistakes might be taking place during the execution of their program.

As a programmer this insight will make you more efficient and more confident about writing code.

Part I

NameError

You’ll get a NameError when an object can’t be found in Python.

Example 1

>>> str = “Hello World!”
>>> print(monkey)

SyntaxError

You’ll get a SyntaxError when you make a syntax error in Python. It can be a missing quote or parenthesis.

Example 2

>>> str = “Hello World!
>>> print(str)

TypeError

You’ll get a TypeError when you apply an operation or function to the wrong type of data, such as applying arithmetic operations to strings.

Example 3

>>> str = “Hello World!”
>>> print(str+5)

IndexError

You’ll get an IndexError when you try to reach an index outside the limits of your data.

Example 4

>>> str = “Hello World!”
>>> print(str[25])

KeyError

KeyError is like IndexError for dictionaries. If you try to reach a key that’s not included in your dictionary, you’ll get a KeyError

Example 5

>>> dict = {“Apple”: 5, “Mango”: 7}
>>> print (dict[“Lemon”])

AttributeError

Attribute error occurs when you try to use an attribute or method that doesn’t apply to the specific data you’re working on. For instance, trying to apply .reverse() method on a string.

Example 6

>>> data = 11.79011
>>> data.capitalize()

ValueError

Value error occurs when you apply a function to a data type correctly but the content is not suitable for that operation. For example, you can apply int() to a string of numbers such as:
int(“9999”)
but you can’t convert letters to integers so following won’t work:
int(“kittycat”)

Example 7

>>> str = “11A”
>>> int(str)

Tips

1- If you try to intentionally cause Python Builtin Errors a few times you won’t easily confuse them nor forget them in the future. Exercises 15 are specifically design in that way for this lesson.

2- Part II will be regarding a general programming discussion rather than a Python specific lesson.

Part II

Syntax Error

As you can see, a tiny mistake can cause your program to throw out a syntax error and this can be very frustrating for beginner programmers.

It gets better as you code as there are limited amount of syntax errors and they usually resemble each other.

Initially keep your cool, you’re probably not seeing a mistake because your eyes are not trained yet.

Unlike normal language writing, programming languages are less forgiving in this sense and one tiny mistake will cause your whole program to malfunction.

The good thing is syntax error tells you the line of the error and you will get used to the syntax of a language rather quickly.

Example 8

Semantic Error

Also called Logical Errors, semantic errors are an issue of meaning. It’s not a grammar issue, or in programming lingo, syntax is fine and program compiles but the results are not what we intended to have.

Example 9

>>> population = 23777000
>>> live_births = 570000
>>> birth_rate_per_thousand = live_births / population
>>> print(birth_rate_per_thousand )

Although program runs successfully, we forgot to multiply the result by 1000 since the rate is per thousand. So the answer is wrong and confusing.

Runtime Error

Finally, runtime errors are errors that happen during the program’s runtime. It means, program compiled and started executing without any problems, meaning there is no syntax error. However, during the runtime something is not quite right.

For instance:

Example 10

>>> population = 23777000
>>> space_incident = 0
>>> space_incident_rate = population /

Your program is likely to freeze or throw a runtime error due to division by zero.

Advanced Concepts (Optional)

1- Here is a full list of Python’s built-in Errors.

AssertionError: Raised when the assert statement fails.
EOFError: Raised when the input() function hits the end-of-file condition.
FloatingPointError: Raised when a floating point operation fails.
GeneratorExit: Raised when a generator’s close() method is called.
ImportError: Raised when the imported module is not found.
KeyboardInterrupt: Raised when the user hits the interrupt key (Ctrl+c or delete).
MemoryError: Raised when an operation runs out of memory.
NotImplementedError: Raised by abstract methods.
OSError: Raised when a system operation causes a system-related error.
OverflowError: Raised when the result of an arithmetic operation is too large to be represented.
ReferenceError: Raised when a weak reference proxy is used to access a garbage collected referent.
RuntimeError: Raised when an error does not fall under any other category.
StopIteration: Raised by the next() function to indicate that there is no further item to be returned by the iterator.
IndentationError: Raised when there is an incorrect indentation.
TabError: Raised when the indentation consists of inconsistent tabs and spaces.
SystemError: Raised when the interpreter detects internal error.
SystemExit: Raised by the sys.exit() function.
UnboundLocalError: Raised when a reference is made to a local variable in a function or method, but no value has been bound to that variable.
UnicodeError: Raised when a Unicode-related encoding or decoding error occurs.
UnicodeEncodeError Raised when a Unicode-related error occurs during encoding.
UnicodeDecodeError Raised when a Unicode-related error occurs during decoding.
UnicodeTranslateError Raised when a Unicode-related error occurs during translation.
ZeroDivisionError Raised when the second operand of a division or module operation is zero.

Lesson 16

“Have you installed Python yet?”

Having Python setup on your computer can expedite the learning experience and help you gain the real life skills in a non-simulation environment. Installing Python can have different nuances that can be confusing for everyone. We compiled a complete tutorial about the best and most convenient Python installing practices Check it out by clicking the button below.