: Contains the code that executes if a specific error occurs.
: For domain-specific logic, you can define your own error classes by inheriting from the built-in Exception class.
In Python 3, error handling is managed through , which are events that disrupt the normal flow of a program . Mastering these tools allows you to create robust applications that can recover from issues like invalid user input or missing files instead of crashing. The Core Mechanism: try...except
: Pythonic code often follows "Easier to Ask Forgiveness than Permission" (EAFP)—trying an operation and handling the failure rather than checking if it's possible beforehand. Common Built-in Exceptions
: Avoid using a bare except: or except Exception: . Catching specific errors (e.g., FileNotFoundError ) prevents you from accidentally silencing unexpected bugs you didn't intend to handle.
try: number = int(input("Enter a number: ")) result = 10 / number except ValueError: print("Error: Please enter a valid integer.") except ZeroDivisionError: print("Error: Cannot divide by zero.") Use code with caution. Copied to clipboard Expanding Control: else and finally
: Runs only if the code in the try block executed without any exceptions. Use this for code that should only run if the "risky" part succeeded.
For more complex logic, Python provides two optional clauses: