python:异常
来源:互联网 发布:手机淘宝怎么找小二 编辑:程序博客网 时间:2024/06/04 19:48
一、exception
(鱼C)python标准异常总结
http://bbs.fishc.com/thread-45814-1-1.html
常谈到的:AssertionError、AttributeError、IndexError(序列中索引值超出实际范围)、KeyError(在字典中查找一个不存在的关键字,用捕获或者get()方法)、NameError(尝试访问不存在的变量)、OSError(操作系统的异常,下边有好多子类FileNotFoundError)、OverflowError、SyntaxError(语法错误)、TypeError(类型异常)、ZeroDivisionError(除数为0异常)
二、检测异常并处理
异常检测可以使用try,有两种形式
try-except语句
try: 检测范围except Exception[as reason]: 出现异常(Exception)后的处理代码
try: f = open('wobushiwenjian.txt') print(f.read()) f.close()except OSError: print('文件出错了') #这种会打印“文件出错了”,但不会打印为什么出错或者使用asexcept OSError as reason: print('文件出错了:' + str(reason)) #注意这里使用str!返回:文件出错了: Errno 2] No such file or directory: 'ss'可以使用多个except
1 file_name = input('please filename for open:') 2 try: 3 sum = 1 + '1' 4 f = open(file_name) 5 print(f.read()) 6 f.close() 7 except OSError as reason: 8 print('文件出错了\n错误原因是:' + str(reason)) 9 except TypeError as reason: 10 print('类型出错了' + str(reason)
上栗中当有OSError、TypeError之外的异常时,不能被捕获,照样会挂掉;所以直接使用
except: print('出错了')
写法会捕获 所有异常,也会捕获到ctrl + c强制关闭程序 (KeyboardError),因此不推荐这么做
注意:try里边的语句前边的语句出现了异常,后边的语句不会被执行
还可以这样写
except (OSError, TypeError): print('出错了')这种情况可以加as reason吗?不知道哎,自己去测一下!
try-finally语句
try: 检测范围except Exception[as reason]: 出现异常(Exception)后的处理代码finally: 无论如何都会被执行的代码
如果文件异常出现在文件成功打开之后,关闭文件之前,是有问题的!此时就需要把f.close()放到finally中!
raise语句
代码自己引发出一个异常!
用法:raise ZeroDivisionError('除数为零了')
>>> raiseTraceback (most recent call last): File "<stdin>", line 1, in <module>RuntimeError: No active exception to reraise>>> 1 / 0Traceback (most recent call last): File "<stdin>", line 1, in <module>ZeroDivisionError: division by zero>>> raise ZeroDivisionErrorTraceback (most recent call last): File "<stdin>", line 1, in <module>ZeroDivisionError>>> raise ZeroDivisionError('除数为零了')Traceback (most recent call last): File "<stdin>", line 1, in <module>ZeroDivisionError: 除数为零了>>>
0 0
- Python 异常
- python 异常
- python 异常
- python异常
- 【Python】异常
- python异常
- python异常
- python异常
- PYTHON-异常
- python异常
- Python 异常
- Python异常
- Python异常
- Python异常
- Python异常
- python 异常
- python 异常
- Python 异常
- C++ Primer 第5版--练习10.34
- iOS小技巧纪录(持续更新)
- 素数判断
- 566. Reshape the Matrix
- Java内存区域与内存溢出异常
- python:异常
- AVL树的构建
- PAT 乙级 1029. 旧键盘(20)
- C++ Primer 第5版--练习10.35
- 网站最下方的版权信息源代码仅供参考
- Spring——${}和#{}
- python中的正则表达式(模式匹配)
- 鬼斧神工-正则表达式☞修正模式(进阶)
- 20170507 数组,指针