写自动化脚本时经常会用到异常处理,下面将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

最新文章

  1. Windows下安装Nginx+php+mysql环境
  2. SSH框架整合项目(一)——搭建平台和引入依赖
  3. POJ 2528 Mayor&#39;s posters(线段树+离散化)
  4. 25佳漂亮的结婚邀请 &amp; 婚礼请柬网站设计
  5. SQL 常用函数及示例
  6. 右移&gt;&gt; 和 左移&lt;&lt;
  7. [iOS]iPhone利用&lt;极光推送&gt;实现远程推送
  8. 小波变换 C++ opencv 实现
  9. JSP标准标签库的安装以及自定义标签的创建
  10. PHP学习笔记2-流程控制
  11. 因为没有安装xcode,得不到xcode证书报错
  12. Nginx详解二十八:Nginx架构篇Nginx+Lua的安全waf防火墙
  13. 使用sysbench 0.5 对mysql 进行性能、压力测试
  14. SQL查看死锁+清理死锁
  15. SQL将Null转化为0
  16. java中数据字典的使用:
  17. 关于A left join B,A是否一定是主表?
  18. 基于C# winform实现图片流存储到文件
  19. 微信小程序生成二维码
  20. Chrome浏览器被hao123劫持,浏览器主页会被篡改为 hao123等

热门文章

  1. MySQL存储过程、触发器、自定义函数、事务
  2. Codeforces Round #430 (Div. 2) - B
  3. java代码实现H5页面
  4. SpringBoot使用Easypoi导出excel示例
  5. 设计模式Design Pattern(2)--单例模式
  6. 【NOIP2016提高组A组7.16】第三条跑道
  7. js的字符串是数字时过长的时候会被截断
  8. linux运维、架构之路-xtrabackup
  9. vue的生产环境dependencies 和开发环境devDependencies,二者的理解和区别
  10. UITableView和MJReFresh结合使用问题记录