首页 > 技术文章 > python--异常捕获

shenyexiaoqingxin 2019-02-21 10:15 原文

 1 #异常捕获---指定异常类型
 2 try:
 3     #尝试
 4     fi=open(r'D:\Users\4399-3046\Desktop\test.txt',mode='wb');
 5     fi.write('写入文字');
 6 #若发生异常,且异常错误类型=IOERROR,则打印出错误内容(比如把后面的mode='W',去掉,就会捕获这个异常)
 7 except IOError:----->这就是指定的异常
 8     print('此处捕获了IOERROR');
 9 #否则(相当于没有捕获到异常),则正常运行try里的语句,若运行成功,打印出【写入成功】
10 else:
11     print('未发生异常,写入成功');
 1 #异常捕获---不指定异常类型
 2 try:
 3     #尝试
 4     fi=open(r'D:\Users\4399-3046\Desktop\test.txt',mode='wb');
 5     fi.write('写入文字');
 6 #若发生异常,且异常错误类型=IOERROR,则打印出错误内容(比如把后面的mode='W',去掉,就会捕获这个异常)
 7 except Except as e :------------->这里没有指定异常,所有异常(ERROR)都会抛出
 8     print('此处捕获了异常',e);
 9 #否则(相当于没有捕获到异常),则正常运行try里的语句,若运行成功,打印出【写入成功】
10 else:
11     print('未发生异常,写入成功');

 

 

==============总结1====================

1 try:
2     print('执行可能出错的代码');
3 except Exception as e:----------->因为不确定会捕获到什么异常,因此使用所有异常的基类
4     print('处理异常的操作');
5 else:
6     print('这里是当没有异常的操作');
7 finally:
8     print('这里是即使发生异常也会执行的地方');

 

例子:

1 try:
2     s=input('请输入要输入的字符:');
3     i=int(s);
4 except Exception as e:
5     print(e);------->typeError
6 else:
7     print(i);
8 finally:
9     print('你输入的东西有误哦');

 

 

==============总结2--自定义异常--raise====================

 之前的异常捕获,可以说是程序自己触发

①而raise不同,有了它,我们可以自己触发异常

②触发raise异常后,后面的代码将不再运行

③当程序出现错误,python会自动引发异常错误,也可以通过raise显式地引发异常

一旦执行了raise语句,raise后面的语句将不能执行。

 

 

===========对代码的异常捕获是必要的,主要还是视情况而定===

1、对于

 

推荐阅读