我正在尝试记录一些预期的错误。
最初,我的脚本编写如下:

   except (BadZipFile, MemoryError) as e:
       logger.error(f'No: {n} - {filename} = {e}')
但是我在记录器中注意到,似乎只有BadZipFile错误消息可以实现。 MemoryError符号后,=日志似乎为空
我以为e可能是因为它首先出现就只存储了BadZipFile错误消息,所以我尝试制作一个元组:
   except (BadZipFile, MemoryError) as (eb, em):
       logger.error(f'No: {n} - {filename} = {eb, em}')
但是当然语法是错误的。那么我的代码最初出了什么问题?为什么MemoryError日志不存储?

最佳答案

首先发生的任何异常都将被捕获,除了block。因此,我认为在您的情况下,第一个引发异常的是BadZipFile。请参阅@LMKR示例。
尝试显式引发异常以检查其是否有效...

>>> try:
...     if True:
...         raise MemoryError("MemoryError occured")
... except (BadZipFile, MemoryError) as e:
...     print(e)

07-28 00:04