Python 如何显示有关错误的信息?

Python 如何显示有关错误的信息?,python,python-3.x,Python,Python 3.x,请帮助显示错误消息 def download(path, name): #urllib.URLopener().retrieve(prefix + path, name) img = urllib.request.urlopen(prefix + path).read() try: f = open(name, "wb") f.write(img) except PermissionError: print('Per

请帮助显示错误消息

def download(path, name):
    #urllib.URLopener().retrieve(prefix + path, name)
    img = urllib.request.urlopen(prefix + path).read()
    try:
        f = open(name, "wb")
        f.write(img)
    except PermissionError:
        print('PermissionError')
    except:
        print(error)
    finally:
        f.close()  
如果写入失败,脚本将写入

许可误差

但如果有其他错误,我需要显示有关错误的完整信息。不是

错误

有可能实施吗

def download(path, name):
    #urllib.URLopener().retrieve(prefix + path, name)
    img = urllib.request.urlopen(prefix + path).read()
    try:
        f = open(name, "wb")
        f.write(img)
    except PermissionError:
        print('PermissionError')
    except Exception as exc:
        print(exc)
    finally:
        f.close()  
但是捕捉任何和所有这样的异常都不是一个好主意;只捕获您在那里期望的异常。如果真的发生了不好的事情,那么这些异常应该传播给用户,程序真的应该停止在那里

事实上,如果您想打开更多failsave文件,请通过
with
语句使用上下文管理器:

with open(name, "wb") as f:
    <do stuff>
<done here>
以open(名称,“wb”)作为f的
文件
f
以这种方式自动关闭;用
finally
语句无需担心

但是捕捉任何和所有这样的异常都不是一个好主意;只捕获您在那里期望的异常。如果真的发生了不好的事情,那么这些异常应该传播给用户,程序真的应该停止在那里

事实上,如果您想打开更多failsave文件,请通过
with
语句使用上下文管理器:

with open(name, "wb") as f:
    <do stuff>
<done here>
以open(名称,“wb”)作为f的
文件
f
以这种方式自动关闭;无需担心最后的
语句。

您可以这样做:

try:
    …
except PermissionError:
    print('PermissionError')
except Exception as e:
    print(e)
注意,你不应该只是这样。特别是对于文件操作,您可以轻松地选择
OSError
作为尝试打开文件时可能发生的最常见异常,同时保留其他关键异常

此外,与手动关闭文件相比,最好使用。这还可以确保无论是否出现异常,文件都已关闭:

def download (path, name):
    img = urllib.request.urlopen(prefix + path).read()
    try:
        with open(name, "wb") as f:
            f.write(img)
    except PermissionError:
        print('PermissionError')
您可以这样做:

try:
    …
except PermissionError:
    print('PermissionError')
except Exception as e:
    print(e)
注意,你不应该只是这样。特别是对于文件操作,您可以轻松地选择
OSError
作为尝试打开文件时可能发生的最常见异常,同时保留其他关键异常

此外,与手动关闭文件相比,最好使用。这还可以确保无论是否出现异常,文件都已关闭:

def download (path, name):
    img = urllib.request.urlopen(prefix + path).read()
    try:
        with open(name, "wb") as f:
            f.write(img)
    except PermissionError:
        print('PermissionError')