异常处理

exception

常见标准异常总结:https://fishc.com.cn/thread-45814-1-2.html

如何检测异常并处理异常

try-except
使用格式:
try:
检测范围
except Exception[as reason]:
出现异常后的处理代码

try:
    f = open('why is me.txt')
    print(f.read())
    f.close()
except OSError:
    print("打开文件出错啦!")

如果想要将错误居来提类型打印出来,可以这样:

try:
    f = open('why is me.txt')
    print(f.read())
    f.close()
except OSError as reason:
    print("打开文件出错啦!\n错误的原因是:"+ str(reason))

注:

  1. 也可以在后面并列多个except ,比如继续并列:except TypeError as reason:
  2. 直接except:表示,任何类型的错误发生后,运行 ’ :’ 后的代码
  3. 可以用元组包括多个类型错误报错比如,except (OSError, TypeError) :

try-finally
使用格式:
try:
检测范围
except Exception[as reason]:
出现异常(exception)后的处理代码
finally:
无论你如何都会被执行的代码

这是一个写入文件,如果没有加最后finally后面的语句,则新文件内没有写入具体内容。

try:
    f = open('fffff.txt','w')
    f.write('I love You!')
    sum = 1 + 'i'
    f.close()
except (OSError, TypeError):
    print("出错啦!")
finally:
          f.close()

raise语句

>>> raise
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    raise
RuntimeError: No active exception to reraise
>>> raise ZeroDivisionError
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    raise ZeroDivisionError
ZeroDivisionError
>>> raise ZeroDivisionError('除数为0的异常')
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    raise ZeroDivisionError('除数为0的异常')
ZeroDivisionError: 除数为0的异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值