• invalidusernamelol [he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      4 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