python3 异常及异常处理
来源:互联网 发布:网络机房升级改造方案 编辑:程序博客网 时间:2024/06/06 05:49
异常
@(python3)
python 用 异常对象(exception object)来表示异常情况。异常对象可以被处理、捕获,避免程序终止执行。
内建异常类
python3.5 官网手册
Exception 所有异常的基类AttributeError 特征引用或者赋值失败时引发的IOError 试图打在不存在的文件(包括其他情况)IndexError 使用序列中不存在的索引KeyError 使用映射中不存在的键NameError 找不到名字(变量)SyntaxError 在代码为错误形式时引发SystemExit 系统异常退出TypeError 在内建操作或者函数应用与错误类型的对象时ValueError 正确的类型对象,但是对象使用不合适的值ZeroDivisionError 除法,第二参数为0
自定义异常
可以创建一个新的exception类来拥有自己的异常。异常应该继承自 Exception 类,或者直接继承,或者间接继承
class MyError(Exception): pass
- 自定义异常也可以在类里面定义方法
捕捉异常
基本形式:
try: 需要执行的操作except 异常类 as e: 如果发生异常,执行以下代码else: 如果没有发生异常,执行的命令finally: 无论如何,都要执行的代码
- 注意 except as e 的写法,e 是一个变量,记录了异常的类,可以用 print 函数打印出来
- except 后面的异常类,建议写 Exception,这样就一定能捕获到异常。
捕获到异常,就不会去执行 else 模块
示例:
try: name = input('Please input your name: ') print('Hello %s' %name) print(10/0)except Exception as e: print('Got an error ', e)finally: print('Game over')
捕获多个异常
方法一:
try: 需要执行的操作except 异常类 as e: 如果发生异常,执行以下代码except 异常类 as f: 如果发生异常,执行以下代码else: 如果没有发生异常,执行的命令finally: 无论如何,都要执行的代码
- except 后面的异常类,如果无需指定,直接写 Exception 即可。
- 如果需要明确指定异常的类,而且是多个类的情况下,可以使用多个 except 语句。
方法二:
try: 需要执行的操作except (异常类1,异常2,异常3) as e: 如果发生异常,执行以下代码else: 如果没有发生异常,执行的命令finally: 无论如何,都要执行的代码
抛出异常
raise 关键字可以自主抛出异常,规则如下:
raise NameError([str])
- raise 后面跟异常的类,类括号里面,可以指定要抛出的异常示例,约详细越好
>>> raise NameError()Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError>>> raise NameError('bad name')Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError: bad name
raise 如果用在 try / except 语句中,那么会直接抛出异常,并终止程序运行。不影响 finally 语句的执行。
while True: try: a = input('Plase input a number: ') b = input('Plase input a number: ') print(a/b) except Exception as e: print('Error happend, please do agin') raise e else: print('No error happend')
异常实现循环
在循环没有异常的情况下,才会退出循环。
while True: try: a = input('Plase input a number: ') b = input('Plase input a number: ') print(a/b) except Exception as e: print('Error happend, please do agin') print(e) else: print('No error happend')
异常处理参考链接
阅读全文
0 0
- python3 异常及异常处理
- python3--异常处理及习题
- Python3.2 --- 异常处理
- Python3 的异常处理
- Python3 的异常处理
- python3的异常处理
- Python3 异常处理
- Python3 异常处理
- Python3 异常处理
- Python3之异常处理
- python3 异常处理
- python3.x的异常处理
- Python3:异常处理,try...except
- Python3.X中的异常处理
- Python3学习(29)--异常处理
- Java 异常及异常处理
- java异常及异常处理
- Java异常及异常处理
- Oracle 索引,同义词,序列
- JAVA中Swing的绘制原理以及如何实现动态图画
- Java---类加载机制,构造方法,静态变量,(静态)代码块,父类,变量加载顺序
- NOIP模拟(10.27)T2 遥远的金字塔
- 在Windows下怎么用vm虚拟机安装mac苹果操作系统 如何启动mac 苹果电脑root用户账户
- python3 异常及异常处理
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/mysql.sock'
- IntelliJ IDEA 2017 永久注册方法
- 洛谷二连:1280尼克的任务——1282多米诺骨牌
- 华为轮值CEO徐直军:内部从没听过“裁员”这两个字,实际上是外派
- 腾讯地图为“骑友”推出骑行导航
- “东南亚版滴滴”Grab第一次重大并购:收购Kudo打造自己的支付平台
- 苏宁2.5亿五年德甲联赛版权 天价投入锁定会员流量入口
- break continue区别(跳转语句)