• invalidusernamelol [he/him]
    ·
    edit-2
    2 months ago

    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