我正在尝试为日志实现Python的日志记录库。
我理解如果在try-catch循环中包含某些内容,则会捕获异常。
但在我的一个例子中,导入失败,这是脚本的开始。这不会被记录。 (它只在Jupyter的日志中打印出来)
如何记录这些异常?寻找不在try - except循环中包装整个脚本。
Jupyter或任何IDE上的任何错误都会打印在控制台中,为什么不用logger?没有任何这样的实施
答案 0 :(得分:1)
使用记录器时,您必须实施错误记录 在Python中,默认情况下,错误仅记录到控制台 因此,如果您想使用记录器,则必须添加逻辑以捕获并记录错误。
try except
块是处理Python导入的常用方法。
还有很多其他用途 处理实际的例外 错误条件。 常见的用法 标准的Python库是试图 导入一个模块,然后检查 是否有效。导入模块 不存在的将会提出一个 ImportError异常。您可以使用 这可以定义多个级别 基于哪些模块的功能 可以在运行时使用,也可以在运行时使用 支持多个平台(在哪里 特定于平台的代码是分开的 进入不同的模块)。
下一个例子演示了如何 使用例外来支持 特定于平台的功能。
try:
import termios, TERMIOS
except ImportError:
try:
import msvcrt
except ImportError:
try:
from EasyDialogs import AskPassword
except ImportError:
getpass = default_getpass
else:
getpass = AskPassword
else:
getpass = win_getpass
else:
getpass = unix_getpass
答案 1 :(得分:1)
与IDE日志的区别,或者即使您从控制台或终端运行python文件,只要捕获到异常,脚本就会立即中断。
如果你想获得异常并在它发生后做一些事情,例如记录它,那么你需要使用“try except”块。
我不知道为什么你试图避免使用“try except”块,因为它是该语言的基本功能,就像任何其他决策块一样(“if”,“while”,“for”,等)。
尝试将其视为常见的“if”声明:
Flowable