async def throw_exception_event(self, event_context, queue, exception): if event_context.name != "UnexpectedException": #print("error: by pre:", event_context.name) await queue.put( InternalEvent(name="UnexpectedException", body=UnexpectedException(error=exception, event=event_context, session=self))) EventLogger.error( f"threw a exception by {event_context.name}, Exception: {exception}" ) traceback.print_exc() else: EventLogger.critical( f"threw a exception by {event_context.name}, Exception: {exception}, it's a exception handler." )
async def put_exception(self, event_context, exception): from mirai.event.builtins import UnexpectedException if event_context.name != "UnexpectedException": if exception.__class__ in self.listening_exceptions: EventLogger.error( f"threw a exception by {event_context.name}, Exception: {exception.__class__.__name__}, and it has been catched.") else: EventLogger.error( f"threw a exception by {event_context.name}, Exception: {exception.__class__.__name__}, and it hasn't been catched!") traceback.print_exc() await self.queue.put(InternalEvent( name="UnexpectedException", body=UnexpectedException( error=exception, event=event_context, application=self ) )) else: EventLogger.critical( f"threw a exception in a exception handler by {event_context.name}, Exception: {exception.__class__.__name__}.")