Even better is to create a decorator and just wrap the offending functions:
defshut_up(func):
defcall(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception as e:
print(f"shit's fucked, but I'll be quiet about it")
returnreturn call
@shut_updefadd(x: int, y: int):
print(x + y)
add(1, 2)
add(-1, 2)
add(1, "2")
>>> 3>>> 1>>> "shit's fucked, but I'll be quiet about it"
Or if you want to attempt to salvage it:
defshut_up(func):
defcall(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception as e:
try:
return func(*map(int, args), **kwargs)
except Exception as e:
print(f"shit's really fucked, I even tried to fix it for you")
returnNonereturn call
Even better is to create a decorator and just wrap the offending functions:
def shut_up(func): def call(*args, **kwargs): try: return func(*args, **kwargs) except Exception as e: print(f"shit's fucked, but I'll be quiet about it") return return call @shut_up def add(x: int, y: int): print(x + y) add(1, 2) add(-1, 2) add(1, "2") >>> 3 >>> 1 >>> "shit's fucked, but I'll be quiet about it"
Or if you want to attempt to salvage it:
def shut_up(func): def call(*args, **kwargs): try: return func(*args, **kwargs) except Exception as e: try: return func(*map(int, args), **kwargs) except Exception as e: print(f"shit's really fucked, I even tried to fix it for you") return None return call