def test_div(num1,num2):
return num1 / num2 if __name__ == "__main__":
try:
print(test_div(5,"a"))
except ZeroDivisionError:
print("除数不能为零")
except TypeError as err:
print("输入数字")
print(err)
结果:
输入数字
unsupported operand type(s) for /: 'int' and 'str'

def test_file():
try:
f = open("test.txt","r")
rest = f.read()
print(rest)
except:
print("eror")
finally:
try:#加入新得try,防止文件没有被打开而需要关闭所产生的异常
f.close()
print("quan")
except:
pass
#try: if __name__ == "__main__":
test_file()

class ApiException(Exception):
"""我的自定义异常"""
err_code = ""
err_msg = ""
def __init__(self, err_code=None, err_msg=None):
#111111如果存在则使用自己,要不就使用传进来的参数
self.err_code = self.err_code if self.err_code else err_code
self.err_msg = self.err_msg if self.err_msg else err_msg def __str__(self):
return "Error:{0} - {1}".format(self.err_code,self.err_msg) class InvalidCtrlexec( ApiException):
err_code = "4001"
err_msg = "bbbbb" class BagException(ApiException):
err_code = "4002"
err_msg = "quanzhiqiang" def test_exec(num1,num2):
"""除法的实习"""
#两个数必须为整数
if not isinstance(num1,int) or not isinstance(num2,int):
raise BagException()#BagException("88","9999")也是一样的输出,因为11111
if num2 == 0:
raise ApiException("40002","ccccc")
return num1 / num2 if __name__ == "__main__":
try:
rest = test_exec(5,"2")
"""
当为(5,0)结果:处处哦
Error:40002 - ccccc
当为(5,”quan”)结果为:
quanqqqq
Error:4002 - quanzhiqiang
"""
print(rest)
except BagException as B_err: #因为这个BagException是ApiException的子类,捕获小的再捕获大范围的
print("quanqqqq")
print(B_err)
except ApiException as err:
print("处处哦")
print(err)

class MyException(Exception):
pass def v_for():
for i in range(1,100):
if i == 20:
raise MyException
print(i) def call_v_for():
print("aaaaaaaaaaaaaaaa")
v_for()
print("bbbbbbbbbbbbbbb") def test_raise():
print("ceshi")
try:
call_v_for()
except MyException:
print("88888888888888888")
print("endend") if __name__ == "__main__":
test_raise() 结果:
ceshi
aaaaaaaaaaaaaaaa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
88888888888888888
endend 因为异常是由原函数触发,如果没有捕获,就会一层一层往调用函数传递
这里在最外层捕获,所以call_v_for里面没有 print("bbbbbbbbbbbbbbb")

最新文章

  1. EF优缺点的理解
  2. rhel 5.8 and 6.4 yum配置
  3. hihoCoder 1303 数论六·模线性方程组
  4. Android 手机卫士17--缓存清理
  5. 用纯原生js实现jquery的ready函数(两种实现)
  6. AFNetworking框架使用
  7. swift swizzle
  8. UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决
  9. 基于Centos6.x定制化安装步骤
  10. Sql server 事务的两种用法
  11. tomcat部署项目时省略项目名
  12. Ingress介绍与安装配置
  13. 单纯linux系统下hadoop2.7.3 eclipse,记一次成功的运行wordcount的注意事项
  14. 2017中国无人机公开赛 总决赛 CDR Final 竞赛规则
  15. python装饰器介绍
  16. 读写锁 SRWLOCK
  17. MSF里MS17_010利用模块笔记
  18. mint 设置无线 AP
  19. python3新特点
  20. 编写JavaScript 代码的5个小技巧

热门文章

  1. logging模块二
  2. FastAPI 学习之路(五十四)startup 和 shutdown
  3. JVM:体系结构
  4. MySQL:提高笔记-2
  5. [no_code][Alpha]项目展示博客
  6. [源码解析] Pytorch 如何实现后向传播 (2)---- 引擎静态结构
  7. elasticsearch地理位置查询
  8. nio之缓冲区(Buffer)理解
  9. 空格替换 牛客网 程序员面试金典 C++ Python
  10. Swift-技巧(四)设置照片尺寸和格式