python进阶之异常处理

  异常处理

  在代码运行时,会因为各种原因出现bug,而程序遇到bug就会中断运行,而在日常生产中程序是要长时间运行不能随意中断的。因此就需要我们提前做好异常处理。

  异常

print(x)  # 一般报错就会打印一串红色的错误信息

  

  异常处理:为了更合理的处理代码可能出现的错误

try:
    print(x)
except NameError as error:
    print('错误:%s'% error)  # 错误:name 'x' is not defined
else:
    print('没有异常执行else的代码')
print('其他的代码')   # 会正常执行

  通过上面的例子,总结出的异常处理格式为:

"""
    try:
        代码  一般放一些我们认为可能会出错的代码
    except 错误类型:   这里可以用as+变量名来接收错误信息
        错误后执行的代码    一般就是将错误信息写进log文件
    ......              可以写多个except判定多种错误类型
    else:
        正常是执行的代码
    代码                 不管异常与否都执行的代码
"""

  特殊:finally,一般在函数中做异常处理用,和return遇到也会正常执行,可以做一些收尾的工作,比如:关闭打开的文件。

def func():
    try:
        f = open('except_file', 'w')
        f.write('test')
        return True
    except:
        return False
    finally:
        print('this is finally')
        f.close()
print(func())

  特殊:万能异常类型:Exception

try:
    print(i)
except Exception as error:
    print('错误:%s'% error)
"""
    虽然有了万能的异常处理机制,但是能预测到的异常还是要单独处理
    并且单独的异常处理内容要当在万能之前
"""
原文地址:https://www.cnblogs.com/zxc-Weblog/p/8298349.html