| 27 | self.on_except_callback = on_except_callback |
| 28 | |
| 29 | def __call__(self, *args, **kwargs): |
| 30 | if self.func is None: |
| 31 | self.func = args[0] |
| 32 | return self |
| 33 | try: |
| 34 | return self.func(*args, **kwargs) |
| 35 | except self.exceptions as e: |
| 36 | global EXIT_STATUS |
| 37 | print("{} raised: {}".format(self.func.__name__, e)) |
| 38 | EXIT_STATUS = 1 |
| 39 | if self.on_except_callback is not None: |
| 40 | self.on_except_callback(e) |
| 41 | else: |
| 42 | print("-" * 60) |
| 43 | print("Exception in {}: {}".format(self.func.__name__, e)) |
| 44 | exc_type, exc_value, exc_traceback = sys.exc_info() |
| 45 | traceback.print_tb(exc_traceback) |
| 46 | print("-" * 60) |
| 47 | |
| 48 | @exceptions_handler(Exception) |
| 49 | def print_information(dexfile): |