Oczywiście możemy także stosować składnię, w której opis wyjątku jest przypisywany do zmiennej i możemy go potem wyświetlić w procedurze obsługi np.
except NameError as e:
print('Message:', e)
Można tworzyć wspólną procedurę obsługi dla kilku wyjątków umieszczając nazwy klas w krotce np.
except (ZeroDivisionError, NameError):
# Tutaj umieszczamy procedurę obsługi tych dwóch wyjątków
Na co należy zwrócić uwagę to aby wyjątki stanowiące klasy potomne w hierarchii klas wyjątków były obsługiwane przed klasami z których dziedziczą. Błędna kolejność będzie skutkować tym, że wyjątek obsłuży bardziej ogólna procedura, która była pierwsza w kolejności tzn.
except Exception:
print('It catches all exceptions!')
except NameError:
print('NameError exception')
W powyższym przykładzie wyjątek NameError zostanie obsłużony przez procedurę zawartą w pierwszym bloku except. Pomimo wystąpienia wyjątku NameError zostanie wyświetlony napis: It catches all exceptions!, a procedura obsługująca konkretnie ten wyjątek (i wyświetlająca w tym przypadku napis NameError exception) nie zostanie wykonana.
>>Część trzecia<<