Не знаю, как работает ваша функция, но вы делите something
на divisor
:
Я бы определенно попытался отловить исключение или использовать оператор if, если вы знаете, что divisor
может бытьноль:
def get_hostname():
divisor = 0
something = 1
if divisor == 0:
raise ZeroDivisionError('division by zero | 11.22.33.44')
return something / divisor
Другой вариант - использовать декоратор:
from functools import wraps
def extra_info(ip):
def dec(f):
def _decorator(*args, **kwargs):
try:
ans = f(*args, **kwargs)
except ZeroDivisionError:
raise ZeroDivisionError('division by zero | {}'.format(ip))
return ans
return wraps(f)(_decorator)
return dec
@extra_info('11.22.33.44')
def get_hostname():
divisor = 0
something = 1
return something / divisor