Course Content
Error Handling in Python
Error Handling in Python
Exception Hierarchy
Let's return to the OOP topic. The Exception
is a class that has different instances.
print("=== FIRST CASE ===") try: "string" + 5 # string + int except TypeError as error: print("TypeError:", error) print("Is instance of TypeError:", isinstance(error, TypeError)) print("=== SECOND CASE ===") try: "string" / 10 # string / int except TypeError as error: print("TypeError:", error) print("Is instance of TypeError:", isinstance(error, TypeError))
In the example above, the error
is a variable that contains the TypeError
instance.
First Case | Second Case | |
Class | TypeError | TypeError |
Action for exception | str + int | str / int |
Message | can only concatenate str (not "int") to str | unsupported operand type(s) for /: 'str' and 'int' |
So, we have different instances of the TypeError
class with different messages
Exception Hierarchy
The Exception
classes have a class hierarchy:
Every Exception class is inherited from the BaseException
class.
Everything was clear?
Thanks for your feedback!
Section 2. Chapter 2