В комментарии к другому ответу вы сказали: "parameter
- это еще одна функция; возьмем, к примеру: parameter = pow("5", 5)
, которая вызывает TypeError
, но это может быть функция любого типа и любой тип исключения.. "
Если вы хотите поймать исключение внутри вашей функции, вы должны вызвать параметр (который я предполагаю вызываемым) внутри этой функции:
def function(callable, args=()):
try:
callable(*args)
except:
print('Ops!')
Пример:
>>> function(pow, args=("5", 5))
Ops!
Это если вам действительно нужно вызвать свой «параметр» внутри функции.В противном случае вы должны управлять его поведением снаружи, возможно, с помощью чего-то вроде:
>>> try:
... param = pow('5', 5)
... except:
... param = 10
...
>>> param
10
>>> function(param)
В этом примере выдавать исключение - pow
, а не function
, поэтому рекомендуется разделять два разныхвызовите и оберните с помощью оператора try-except
код, который может завершиться с ошибкой.