Python Language Exceptions: Difference between revisions
Jump to navigation
Jump to search
Line 39: | Line 39: | ||
├─ GeneratorExit | ├─ GeneratorExit | ||
└─ Exception | └─ Exception | ||
├─ StopIteration | |||
├─ StopAsyncIteration | |||
├─ ArithmeticError | |||
│ ├─ FloatingPointError | |||
│ ├─ OverflowError | |||
│ └─ ZeroDivisionError | |||
+-- AssertionError | +-- AssertionError | ||
+-- AttributeError | +-- AttributeError |
Revision as of 21:19, 16 February 2022
Internal
Overview
try/except
is a language-level mechanism to handle errors (traceback) that may be caused by a section of the code.
To trigger an exception manually in the code use raise
.
To conditionally trigger an exception in the code, use assert
.
try/except
try/except
is a language-level mechanism to handle errors (traceback) that may be caused by a section of the code. This syntax eliminates tracebacks.
try:
# do something
except:
# execute if the previous block caused an error
finally
raise
raise
must be followed by an exception, not a string.
assert
The assert
statement can be used to trigger an AssertionError
conditionally. It can be use with an optional error message, which is becoming part of the exception if the assertion proves false:
assert s is not None
assert s is not None, 'The string was supposed to be set!'
Predefined Exceptions
BaseException ├─ SystemExit ├─ KeyboardInterrupt ├─ GeneratorExit └─ Exception ├─ StopIteration ├─ StopAsyncIteration ├─ ArithmeticError │ ├─ FloatingPointError │ ├─ OverflowError │ └─ ZeroDivisionError +-- AssertionError +-- AttributeError +-- BufferError +-- EOFError +-- ImportError | +-- ModuleNotFoundError +-- LookupError | +-- IndexError | +-- KeyError +-- MemoryError +-- NameError | +-- UnboundLocalError +-- OSError | +-- BlockingIOError | +-- ChildProcessError | +-- ConnectionError | | +-- BrokenPipeError | | +-- ConnectionAbortedError | | +-- ConnectionRefusedError | | +-- ConnectionResetError | +-- FileExistsError | +-- FileNotFoundError | +-- InterruptedError | +-- IsADirectoryError | +-- NotADirectoryError | +-- PermissionError | +-- ProcessLookupError | +-- TimeoutError +-- ReferenceError +-- RuntimeError | +-- NotImplementedError | +-- RecursionError +-- SyntaxError | +-- IndentationError | +-- TabError +-- SystemError +-- TypeError +-- ValueError | +-- UnicodeError | +-- UnicodeDecodeError | +-- UnicodeEncodeError | +-- UnicodeTranslateError +-- Warning +-- DeprecationWarning +-- PendingDeprecationWarning +-- RuntimeWarning +-- SyntaxWarning +-- UserWarning +-- FutureWarning +-- ImportWarning +-- UnicodeWarning +-- BytesWarning +-- EncodingWarning +-- ResourceWarning