python3的异常处理
来源:互联网 发布:java 单个文件压缩 编辑:程序博客网 时间:2024/06/09 22:09
#使用异常处理,可以在程序因发生异常时继续往下执行。若没有异常处理,程序在发生异常时就会退出
1.异常处理的基本语法
2.常用的异常名
3.except 语句的几种用法
4.raise手工抛出异常5.assert语句抛出异常
6.自定义异常类
1.异常处理的基本语法
Python中使用 try 语句来处理出现的异常, try 语句中也可以有一个 else语句块,表示若未发生异常。一般的 try 语句基本形式如下:
try: <语句块1> #可能产生异常的语句except <异常名1>: #要处理的异常 <语句块> #异常处理语句except <异常名2>: #要处理的异常 <语句块> #异常处理语句.........else: <语句块> #未触发异常,则执行改语句finally: <语句块> #无论是否触发 异常,都执行此语句
其中 else 和 finally 是可选的。
def fun(index): lt = [1,2,3] try: print(lt[index]) except IndexError: print("Index Error") else: print("Index OK!")if __name__ == '__main__': fun(5) fun(1) '''#打印结果:Index Error2Index OK!'''
2.常用的异常名
异常名描述AttributeError调用不存在的方法引发的异常EOFError遇到文件结尾引发的异常ImportError导入模块出错引发的异常IndexError列表越界引发的异常IOErrorI/O操作引发的异常,如打开文件出错KeyError使用字典中不存在的关键字引发的异常NameError使用不存在的变量名引发的异常TabError语句块缩进不正确引发的异常ValueError搜索列表中不存在的值引发的异常ZeroDivisionError除数为零引发的异常3.except语句的几种用法
1. except: #捕获所有异常;
2. except <异常名>: #捕获指定异常;
3. except (异常名1,异常名2): #捕获异常1或者异常2
4. except <异常名> as <数据>: #捕获指定异常及其附加数据
5. except (异常名1,异常名2) as <数据> #捕获异常1或者异常2及其异常的附加数据
4.raise手工抛出异常
使用raise 可以抛出各种预定的异常,即使在程序运行时根本不会引发该异常
raise 的使用:
raise 异常名
raise 异常名,附加数据
raise 类
示例:
def fun(): for i in range(5): try: if i == 2: raise NameError except NameError: print("get NameExcept")if __name__ == '__main__': fun()'''#打印结果:get NameExcept'''
5.raise语句抛出异常
assert语句也是会抛出异常的,一般形式是: assert 条件 。当条件为假时,就会抛出AssertionError异常。
def fun(): for i in range(5): try: assert i<2 #当 i >=2时,就会触发异常 except AssertionError: print("get AssertionError")if __name__ == '__main__': fun()'''#打印结果:get AssertionErrorget AssertionErrorget AssertionError'''
assert语句一般用于在程序开发时测试代码的有效性,比如某个变量的值必须在一定范围内,而当运行时得到的值不符合要求,则引发异常,对开发者提醒。所以一般在程序开发中,都不去捕获这个异常,而是让它中断程序。原因是程序出现了问题,不应继续运行。
6.自定义异常类
在python中自定义异常类只需要继承 Exception 类即可。如:
class MyError(Exception): pass这就是一个简单的异常类。
class MyException(Exception): def __init__(self,test): self.test = test def __str__(self): return self.testif __name__ == '__main__': raise MyException('MyException!!!')'''#打印结果:Traceback (most recent call last): File "C:/Users/abc/PycharmProjects/untitled3/1", line 8, in <module> raise MyException('MyException!!!')__main__.MyException: MyException!!!'''可以看到通过调用 raise语句,可以成功抛出自定义的异常MyException
- Python3 的异常处理
- Python3 的异常处理
- python3的异常处理
- python3.x的异常处理
- python3 爬取网页的异常处理
- Python3.2 --- 异常处理
- Python3 异常处理
- Python3 异常处理
- Python3 异常处理
- Python3之异常处理
- python3 异常处理
- python3 异常及异常处理
- Python3:异常处理,try...except
- Python3.X中的异常处理
- python3--异常处理及习题
- Python3学习(29)--异常处理
- python3的异常处理、操作excel和数据库
- python3.5处理异常与python2的不同
- linux的系统trouble解决方案
- 大小端字节序的区别
- Android常用控件
- Adapter用法总结
- 关于hive中join的一些优化事项
- python3的异常处理
- 类与对象、构造与析构函数
- 9*9口诀
- LeetCode 64. Minimum Path Sum 解题报告
- 移动端长按事件
- 最简单的安卓接入微信支付教程,不简单你打我!
- 计算机网络原理知识点(第五章:运输层)
- HDU
- 最小费用最大流总结