mirror of
https://github.com/eternnoir/pyTelegramBotAPI.git
synced 2023-08-10 21:12:57 +03:00
middleware handlers exception handling
This commit is contained in:
parent
888c7a6b0d
commit
a39fb14726
@ -342,10 +342,16 @@ class TeleBot:
|
|||||||
|
|
||||||
for update in updates:
|
for update in updates:
|
||||||
if apihelper.ENABLE_MIDDLEWARE:
|
if apihelper.ENABLE_MIDDLEWARE:
|
||||||
self.process_middlewares(update)
|
try:
|
||||||
|
self.process_middlewares(update)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(str(e))
|
||||||
|
update.middleware_error = e # for future handling if it needed
|
||||||
|
|
||||||
if update.update_id > self.last_update_id:
|
if update.update_id > self.last_update_id:
|
||||||
self.last_update_id = update.update_id
|
self.last_update_id = update.update_id
|
||||||
|
if hasattr(update, 'middleware_error'):
|
||||||
|
continue
|
||||||
if update.message:
|
if update.message:
|
||||||
if new_messages is None: new_messages = []
|
if new_messages is None: new_messages = []
|
||||||
new_messages.append(update.message)
|
new_messages.append(update.message)
|
||||||
@ -443,11 +449,19 @@ class TeleBot:
|
|||||||
for update_type, middlewares in self.typed_middleware_handlers.items():
|
for update_type, middlewares in self.typed_middleware_handlers.items():
|
||||||
if getattr(update, update_type) is not None:
|
if getattr(update, update_type) is not None:
|
||||||
for typed_middleware_handler in middlewares:
|
for typed_middleware_handler in middlewares:
|
||||||
typed_middleware_handler(self, getattr(update, update_type))
|
try:
|
||||||
|
typed_middleware_handler(self, getattr(update, update_type))
|
||||||
|
except Exception as e:
|
||||||
|
e.args = (f'Typed middleware handler "{typed_middleware_handler.__qualname__}" raised exception: {str(e)}',)
|
||||||
|
raise
|
||||||
|
|
||||||
if len(self.default_middleware_handlers) > 0:
|
if len(self.default_middleware_handlers) > 0:
|
||||||
for default_middleware_handler in self.default_middleware_handlers:
|
for default_middleware_handler in self.default_middleware_handlers:
|
||||||
default_middleware_handler(self, update)
|
try:
|
||||||
|
default_middleware_handler(self, update)
|
||||||
|
except Exception as e:
|
||||||
|
e.args = (f'Default middleware handler "{typed_middleware_handler.__qualname__}" raised exception: {str(e)}',)
|
||||||
|
raise
|
||||||
|
|
||||||
def __notify_update(self, new_messages):
|
def __notify_update(self, new_messages):
|
||||||
if len(self.update_listener) == 0:
|
if len(self.update_listener) == 0:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user