Python的异常处理机制

异常:你在运行代码过程中遇到的任何错误 带有error字样的,都是异常
异常处理:我们代码中所有可能会出现的异常,进行的处理
疑问:我们为什么要去处理呢?’’’

import os
os.mkdir("SASA")#FileExistsError--文件SASA在当前系统中已存在,再次新增会报错,提示文件已存在无法创建
os.rmdir("SASA")#OSError--文件SASA是 当前系统中有两个内容的文件包,所以我们删除它的时候,会报错,没因为,rmdir只能一级一级的删除,不能直接删除全部文件
print("我就是这么厉害!!,啦啦啦啦")


#每种报错都有错误类型。异常处理要有一个抓错的人,这个人就是我们的Python中的try

第一种:指定某种,指定了某种就只会拦截这一种错误。不是这种错误的就不会拦截。

try:
   os.mkdir("SASA")#try 监控的对象、嫌疑人
except FileExistsError:#这个错误类型要标志清楚,如果不属于这个错误类型会导致无法识别
    print("这个嫌疑人犯错了,立刻抓捕归案")
print("我就是这么厉害,我才不是犯罪分子,啦啦啦啦")

第二种:需要指定错误类型,指定了错误类型就只会拦截这一种错误类型。不是这种错误类型的就不会拦截。

try:
	os.mkdir("SASA")#try 监控的对象、嫌疑人
except OSError:#指定错误类型,只要是属于这个错误类型的错误就会拦截
	print("这个嫌疑人犯错了,立刻抓捕归案")
print("我就是这么厉害,我才不是犯罪分子,啦啦啦啦")

第三种:不指定错误类型,有错就抓。这种不推荐使用

try:
	os.mkdir("SASA")#try 监控的对象、嫌疑人
except:
	print("这个嫌疑人犯错了,立刻抓捕归案")
print("我就是这么厉害,我才不是犯罪分子,啦啦啦啦")

上面提到的都是只抓到了错误但是没有对错误进行处理的,那么要处理错误,如何进行呢?

第一种语法:try except
try:
   os.mkdir("SASA")#try 监控的对象、嫌疑人
except OSError as e:#e是一个变量,用来存储错误
    print("捕捉到的错误为:{0}".format(e))
    file=open("error.txt","a+",encoding="utf-8")
    file.write(e)#将错误存到文件中
    file.close()#关闭资源
第二种语法:try except  finally……
try:
   os.mkdir("SASA")#try 监控的对象、嫌疑人
except OSError as e:#e是一个变量,用来存储错误
    print("捕捉到的错误为:{0}".format(e))
    file=open("error.txt","a+",encoding="utf-8")
    file.write(e)#将错误存到文件中
    file.close()#关闭资源
finally:
    print("即使你犯了错,我这个程序也要继续执行下去")
    
第三种语法:try except else……跟try是一起的,他好我就好,他不好我就不好。不常用,因为可以把代码放在前面。
try:
   os.mkdir("SASA")#try 监控的对象、嫌疑人
except OSError as e:#e是一个变量,用来存储错误
    print("捕捉到的错误为:{0}".format(e))
    file=open("error.txt","a+",encoding="utf-8")
    file.write(str(e))
    file.close()
else:
    print("你如果犯错了,我就没法执行下去了")

最后总结一下Python的标准异常
常用的标准异常:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

非常用标准异常大全:
在这里插入图片描述
以下是 Python 内置异常类的层次结构:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值