Я хочу использовать правильный тип исключения вместо универсального except Exception
, однако я не уверен, как найти правильный тип. Вот фрагмент кода для демонстрации поведения. Передача None
вместо целого числа недопустима, поскольку он пытается упаковать его в беззнаковое длинное.
>>> import struct
>>> try:
... b = struct.pack("L", None)
... except Exception as ex:
... print(f"An exception of type {type(ex).__name__} occurred. {ex.args}")
...
An exception of type error occurred. ('required argument is not an integer',)
Каков рекомендуемый способ отловить исключение из пакета? Или я застрял с проверкой всех аргументов pack()
, чтобы убедиться, что они действительны?