我期待以下内容可行,但PyDev返回错误:
try fh = open(myFile):
logging.info("success")
except Exception as e:
logging.critical("failed because:")
logging.critical(e)
给出
Encountered "fh" at line 237, column 5. Was expecting: ":"...
我环顾四周,无法找到一种安全的方法来打开文件句柄,以便在Python 3.4中阅读并正确报告错误。有人能指出我正确的方向吗?
答案 0 :(得分:4)
你错放了:
;它直接在try
之后出现;最好将它放在自己的单独一行:
try:
fh = open(myFile)
logging.info("success")
except Exception as e:
logging.critical("failed because:")
logging.critical(e)
您在:
来电之后放置了open()
。
您可以告诉e
自动获取异常,而不是将logging
作为单独的参数传递:
try:
fh = open(myFile)
logging.info("success")
except Exception:
logging.critical("failed because:", exc_info=True)
并且日志中将包含完整的回溯。这就是logging.exception()
function的作用;它会在logging.error()
设置为true的情况下调用exc_info
,在日志级别ERROR
生成一条消息并加上追溯。