merry在python中处理异常吗?

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

我在寻找更多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(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')