The :keyword:`!except` clause(s) specify one or more exception handlers. When no exception occurs in the :keyword:`try` clause, no exception handler is executed. When an exception occurs in the :keyword:`!try` suite, a search for an exception handler is started. This search inspects the :keyword:`!except` clauses in turn until one is found that matches the exception. An expression-less :keyword:`!except` clause, if present, must be last; it matches any exception. For an :keyword:`!except` clause with an expression, that expression is evaluated, and the clause matches the exception if the resulting object is "compatible" with the exception.An object is compatible with an exception if the object is the class or a :term:`non-virtual base class <abstract base class>` of the exception object, or a tuple containing an item that is the class or a non-virtual base class of the exception object.