merry在python中处理异常吗?
我在寻找更多python方法来处理python中的错误,我发现了merry 如果您从未听说过,请参阅以下文档: 所以我用merry写了一个小代码merry在python中处理异常吗?,python,python-3.x,exception-handling,Python,Python 3.x,Exception Handling,我在寻找更多python方法来处理python中的错误,我发现了merry 如果您从未听说过,请参阅以下文档: 所以我用merry写了一个小代码 from merry import Merry merry = Merry() @merry._try def write_to_file(filename,data): with open(filename,'w') as file_obj: file_obj.write(data) @merry._except(Fi
from merry import Merry
merry = Merry()
@merry._try
def write_to_file(filename,data):
with open(filename,'w') as file_obj:
file_obj.write(data)
@merry._except(FileNotFoundError)
def fileNotFoundError():
print("File not found")
@merry._except(Exception)
def catch_all(e):
print(f"exception occured :{e}")
@merry._else
def else_clause():
print("no exceptions occured")
path = "C:/Users/User/Desktop1/dataHere.txt"
text = "top secret information"
write_to_file(path,text)
注意,我更改了路径以提高
FileNotFoundError
我原以为merry会处理错误,但结果是:
[梅里]破例了
回溯(最近一次调用上次):文件
“C:\python36\lib\site packages\merry.py”,包装器中的第26行
ret=f(*args,**kwargs)文件“C:/Users/User/Desktop/merrymerry.py”,第7行,在
将\写入\文件
打开(文件名,'w')作为文件\u obj:FileNotFoundError:[Errno 2]没有这样的文件或目录:
'C:/Users/j.sinjaradze/Desktop1/dataHere.txt'
找不到文件
有没有什么我做错了,或者只是merry没有像我预期的那样工作?我想你误解了你的输出/merry是如何工作的。在您的输出中,您有:
[merry] Exception caught
这表明merry捕获了异常。然后是异常的回溯,默认情况下会输出异常,然后是
File not found
这是你工作的结果
def fileNotFoundError():
print("File not found")
所以一切都很好
附录。为什么merry输出异常
在merry的源代码中(参见您链接的github),有一行代码(merry.py:46):
self.logger
以前是通过logging.getLogger(logger\u name)
调用创建的,异常函数会打印额外提供的消息,以跟踪以前发生的异常(有关详细信息,请参阅)
从源代码中,我看不到一种方法可以在不接触
merry.py
源代码的情况下改变这种行为,谢谢你的回答,但是我不明白为什么它会显示traceback?@FlyingTeller你可以访问记录器()并更改其级别或添加一个过滤器。不需要更改源代码。
self.logger.exception('[merry] Exception caught')