python 之异常Exception 2

python 可以通过try语句来检测异常,任何出现在try语句里面的异常

都能被检测到


一、try except


1.1语句方式:

try:

        检测范围

except Exception[as reason]:

        出现异常(Exception)后的处理代码


1.2例子:

try:
    f = open('E:\\tedst.txt')
    print(f)
    f.close()
except OSError:
    print('文件不存在')#结果:当文件不存在时不报错了,而是提示文件不存在day

1.2打印具体的出错信息:

try:
    f = open('E:\\tedst.txt')
    print(f)
    f.close()
except OSError as err:
    print('文件不存在,错误的原因是:'+str(err))#文件不存在,错误的原因是:[Errno 2] No such file or directory: 'E:\\tedst.txt'yige 

1.3一个try语句可以接多个except:

try:
    sum = 1+'1'
    f = open('E:\\tedst.txt')
    print(f)
    f.close()
except OSError as err:
    print('文件不存在,错误的原因是:'+str(err))#这次不会打印文件不存在的错误信息,因为优先报错了类型出错的异常
except TypeError as err:
    print('类型出错啦,错误的原因是:'+str(err))#类型出错啦,错误的原因是:unsupported operand type(s) for +: 'int' and 'str'如果

1.4如果不知道发生的具体异常类型,则可以如下操作

try:
    sum = 1+'1'
    f = open('E:\\tedst.txt')
    print(f)
    f.close()
except:
    print('出错啦')#不建议这样做,会隐藏很多程序员不知道的错误

1.5 try 语句中一旦出现异常,那么下面的语句不会再执行

1.6 同时对多个异常进行统一的处理

try:
    sum = 1+'1'
    f = open('E:\\tedst.txt')
    print(f)
    f.close()
except (OSError,TypeError):
    print('出错啦')

二、try except finally 语句

如果说异常发生在成功打开文件之后---跳入进入except--则f.close()没有执行

try:
    f = open('E:\\tedst.txt')
    sum = 1 + '1'
    print(f)
except (OSError,TypeError):
    print('出错啦')
finally:
    f.close()

三、raise语句:自己引发异常

raise #结果:RuntimeError: No active exception to reraise
raise ZeroDivisionError#结果:ZeroDivisionError
raise ZeroDivisionError('除数为零的异常')#结果:ZeroDivisionError: 除数为零的异常




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值