-->

Errors and Exception Handling || try and except

Errors and Exception Handling

In this article, we will learn about Errors and Exception Handling in Python. You've definitely already encountered errors by this point in the course. For example:

print('Hello)

OUTPUT

File "<ipython-input-1-db8c9988558c>", line 1
    print('Hello)
                 ^
SyntaxError: EOL while scanning string literal<ipython-input-1-db8c9988558c>

Note how we get a SyntaxError, with the further description that it was an EOL (End of Line Error) while scanning the string literal. This is specific enough for us to see that we forgot a single quote at the end of the line. Understanding these various error types will help you debug your code much faster.

This type of error and description is known as an Exception. Even if a statement or expression is syntactically correct, it may cause an error when an attempt is made to execute it. Errors detected during execution are called exceptions and are not unconditionally fatal.

You can check out the full list of built-in exceptions here. Now let's learn how to handle errors and exceptions in our own code.

try and except

The basic terminology and syntax used to handle errors in Python are the try and except statements. The code which can cause an exception to occur is put in the try block and the handling of the exception is then implemented in the except block of code. The syntax follows:

try:    You do your operations here..    ...except ExceptionI:    If there is ExceptionI, then execute this block.except ExceptionII:    If there is ExceptionII, then execute this block.    ...

else:    If there is no exception then execute this block.

We can also just check for any exception with just using except: To get a better understanding of all this let's check out an example: We will look at some code that opens and writes a file:


try:
    f = open('testfile','r')
    f.write('Test write this')
except IOError:
    # This will only check for an IOError exception and then execute this print statement
    print("Error: Could not find file or read data")
else:
    print("Content written successfully")
    f.close()

OUTPUT

Error: Could not find file or read data

Great! Notice how we only printed a statement! The code still ran and we were able to continue doing actions and running code blocks. This is extremely useful when you have to account for possible input errors in your code. You can be prepared for the error and keep running code, instead of your code just breaking as we saw above.

We could have also just said except: if we weren't sure what exception would occur. For example:

try:
    f = open('testfile','r')
    f.write('Test write this')
except:
    # This will only check for any exception and then execute this print statement
    print("Error: Could not find file or read data")
else:
    print("Content written successfully")
    f.close()

OUTPUT

Error: Could not find file or read data

Great! Now we don't actually need to memorize that list of exception types! Now, what if we kept wanting to run code after the exception occurred? This is where finally comes in.

Read Also

Post a Comment