Types of errors
Errors in Python can be categorized into two types:
1. Compile time errors – errors that occur when you ask Python to run the application. Before the program can be run, the source code must be compiled into the machine code. If the conversion can not perfomed, Python will inform you that your application can not be run before the error is fixed. The most common errors of this type are syntax errors – for example, if you don’t end an if statement with the colon. Here is an example:
x = int(input('Enter a number: ')) if x%2 == 0 print('You have entered an even number.') else: print('You have entered an odd number.')
The code above checks if the number the user enters is an odd or an even number. However, notice how the if statement is missing the colon (:) at the end of the line. Because of it, the program won’t run and the interpreter will even inform use what the problem is:
C:\Python34\Scripts>python error.py File "error.py", line 3 if x%2 == 0 ^ SyntaxError: invalid syntax
2. Runtime errors – errors that occur after the code has been compiled and the program is running. The error of this type will cause your program to behave unexpectedly or even crash. An example of an runtime error is the division by zero. Consider the following example:
x = float(input('Enter a number: ')) y = float(input('Enter a number: ')) z = x/y print(x,'divided by',y,'equals: ',z)
The program above runs fine until the user enters 0 as the second number:
>>> Enter a number: 9 Enter a number: 2 9.0 divided by 2.0 equals: 4.5 >>> Enter a number: 11 Enter a number: 3 11.0 divided by 3.0 equals: 3.6666666666666665 >>> Enter a number: 5 Enter a number: 0 Traceback (most recent call last): File "C:/Python34/Scripts/error1.py", line 3, in <module> z = x/y ZeroDivisionError: float division by zero >>>