Python3之异常处理
2024-09-05 06:57:14
写自动化脚本时经常会用到异常处理,下面将python中的异常处理做一整理:
注意:以下所有事列中的111.txt文件不存在,所以会引起异常
用法一:try...except...else..类型
1.没有异常时运行:
a = 3
try:
print(a)
except BaseException as msg: #用msg变量来接受信息,并将其打印。其中BaseException为所有异常的基类,所有异常都继承与它
print(msg)
else:
print("没有异常时执行")
运行结果:
3
没有异常时执行
2.有异常时运行:
a = 3
b = 4
try:
print(a)
open("111.txt",'r') #使用open以只读的方式打开不存在的文件111.txt
print(b)
except BaseException as msg: #用msg变量来接受信息并将其打印
print(msg)
else:
print("没有异常时执行")
运行结果:
3
[Errno 2] No such file or directory: '111.txt' ##该条错误信息是msg接收到的信息
上面代码中的print(b)并没有被执行,因为再该行代码的上一步出现异常
用法二:try...except...finally...类型
1.没有异常时运行:
a = 3
try:
print(a)
except BaseException as msg:
print(msg)
finally:
print("不管有没有异常都会被执行")
运行结果:
3
不管有没有异常都会被执行
2.有异常时运行:
a = 3
try:
print(a)
open('111.txt','r')
except BaseException as msg:
print(msg)
finally:
print("不管有没有异常都会被执行")
运行结果:
3
[Errno 2] No such file or directory: '111.txt'
不管有没有异常都会被执行
用法三:抛出异常(raise)
a = 3
try:
print(a)
open('111.txt','r')
except:
raise Exception('111.txt no exsit') #raise用于异常抛出
运行结果:
3
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '111.txt' During handling of the above exception, another exception occurred: Traceback (most recent call last):
File "<stdin>", line 5, in <module> #抛出异常
Exception: 111.txt no exsit
自定义异常
class TimeError(RuntimeError): #定义一个异常类,该类应该是典型的继承自Exception类,通过直接或间接的方式
def __init__(self,arg):
self.arg = arg try:
raise TimeError("Network timeout") #自定义异常提示
except TimeError as e:
print(e.arg)
运行结果:
Network timeout
最新文章
- Windows下安装Nginx+php+mysql环境
- SSH框架整合项目(一)——搭建平台和引入依赖
- POJ 2528 Mayor&#39;s posters(线段树+离散化)
- 25佳漂亮的结婚邀请 &; 婚礼请柬网站设计
- SQL 常用函数及示例
- 右移>;>; 和 左移<;<;
- [iOS]iPhone利用<;极光推送>;实现远程推送
- 小波变换 C++ opencv 实现
- JSP标准标签库的安装以及自定义标签的创建
- PHP学习笔记2-流程控制
- 因为没有安装xcode,得不到xcode证书报错
- Nginx详解二十八:Nginx架构篇Nginx+Lua的安全waf防火墙
- 使用sysbench 0.5 对mysql 进行性能、压力测试
- SQL查看死锁+清理死锁
- SQL将Null转化为0
- java中数据字典的使用:
- 关于A left join B,A是否一定是主表?
- 基于C# winform实现图片流存储到文件
- 微信小程序生成二维码
- Chrome浏览器被hao123劫持,浏览器主页会被篡改为 hao123等
热门文章
- MySQL存储过程、触发器、自定义函数、事务
- Codeforces Round #430 (Div. 2) - B
- java代码实现H5页面
- SpringBoot使用Easypoi导出excel示例
- 设计模式Design Pattern(2)--单例模式
- 【NOIP2016提高组A组7.16】第三条跑道
- js的字符串是数字时过长的时候会被截断
- linux运维、架构之路-xtrabackup
- vue的生产环境dependencies 和开发环境devDependencies,二者的理解和区别
- UITableView和MJReFresh结合使用问题记录