Python3入门之异常处理--基本功能

Python3入门之异常处理–基本功能

错误代码示例:

    open("xxx.txt")               #要打开的文件不存在   程序报错类型为NameError
    print(num)                    #要输出的变量不存在   程序报错类型为FileNotFoundError

异常处理:
1)try……except……

try:
    open("xxx.txt")               #要打开的文件不存在   程序报错类型为NameError
    print(num)                    #要输出的变量不存在   程序报错类型为FileNotFoundError
    
except (NameError,FileNotFoundError):  #多个错误可以写在一行用元组形式,也可以分开写多个except
    print("如果捕获到异常后做的 处理....")

在except后写上出现的错误名即可,出现已经写的错误时,就会执行except下面的代码。但是,如果出现没有写的错误类型,程序依然会产生异常!
2)try……except Exception……

try:
    open("xxx.txt")
    print(num)

except (NameError,FileNotFoundError):
    print("如果捕获到异常后做的 处理....")
except Exception:
    print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到")

写上except Exception:可以捕获到程序出现在(NameError,FileNotFoundError)里没有标明的异常类型,然后执行except Exception:下的代码

提示:在Exception后添加as+变量名可以通过输出该变量来查看程序出现的错误类型。
示例:

try:
    11/0                          #分母不能为0,但是下面except后元组中并没有标明该异常类型
    open("xxx.txt")               #要打开的文件不存在   程序报错类型为NameError
    print(num)                    #要输出的变量不存在   程序报错类型为FileNotFoundError

except (NameError,FileNotFoundError):
    print("如果捕获到异常后做的 处理....")
except Exception as temp:
    print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到")
    print(temp)

运行结果:

如果捕获到异常后做的 处理....
如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到
division by zero 

3)try……except……else……

try:
    11/0                          #分母不能为0,但是下面except后元组中并没有标明该异常类型
    open("xxx.txt")               #要打开的文件不存在   程序报错类型为NameError
    print(num)                    #要输出的变量不存在   程序报错类型为FileNotFoundError

except (NameError,FileNotFoundError):
    print("如果捕获到异常后做的 处理....")
except Exception as ret:
    print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到")
    print(ret)
else:
    print("没有异常才会执行的功能")

exit语句后代码块,是在try……中没有产生异常才会执行。
4)try……finally……

try:
    11/0                          #分母不能为0,但是下面except后元组中并没有标明该异常类型
    open("xxx.txt")               #要打开的文件不存在   程序报错类型为NameError
    print(num)                    #要输出的变量不存在   程序报错类型为FileNotFoundError

except (NameError,FileNotFoundError):
    print("如果捕获到异常后做的 处理....")
except Exception as ret:
    print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到")
    print(ret)
else:
    print("没有异常才会执行的功能")
finally:
    print("------finally-----")

finally语句后的代码块,无论try语句后程序是否产生异常都会执行。
(在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。 比如文件关闭,释放锁,把数据库连接返还给连接池等)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值