根據Python's Logging tutorial,logging.error
將被用於「報告抑制錯誤而不引發異常」,而如果我想報告一個錯誤,我應該引發一個異常並且根本不使用logging
。顯示錯誤信息的正確方法
如果我想報告錯誤然後引發異常,該怎麼辦?
例如:
try:
os.path.getsize('/nonexistent')
except os.error as error:
logging.error(str(error))
logging.error('something went wrong')
raise SystemExit(1)
這導致下面的行被打印到標準誤差:
ERROR:root:[Errno 2] No such file or directory: '/nonexistent'
ERROR:root:something went wrong
這似乎是合理的。或者:
try:
os.path.getsize('/nonexistent')
except os.error as error:
logging.error(str(error))
raise SomeUserDefinedException('something went wrong')
這是不好的做法嗎?
那麼,一個人應該用來報告錯誤? –
您應該在全局範圍內設置日誌記錄以捕獲任何錯誤和異常,並且它會顯示您在'raise'條件中設置的異常消息。 – MrE