python14异常处理
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")
python14异常处理的更多相关文章
- 关于.NET异常处理的思考
年关将至,对于大部分程序员来说,马上就可以闲下来一段时间了,然而在这个闲暇的时间里,唯有争论哪门语言更好可以消磨时光,估计最近会有很多关于java与.net的博文出现,我表示要作为一个吃瓜群众,静静的 ...
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- 异常处理汇总 ~ 修正果带着你的Net飞奔吧!
经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- IL异常处理
异常处理在程序中也算是比较重要的一部分了,IL异常处理在C#里面实现会用到一些新的方法 1.BeginExceptionBlock:异常块代码开始,相当于try,但是感觉又不太像 2.EndExcep ...
- Spring MVC重定向和转发以及异常处理
SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于 ...
- 【repost】JS中的异常处理方法分享
我们在编写js过程中,难免会遇到一些代码错误问题,需要找出来,有些时候怕因为js问题导致用户体验差,这里给出一些解决方法 js容错语句,就是js出错也不提示错误(防止浏览器右下角有个黄色的三角符号,要 ...
- 札记:Java异常处理
异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...
- 关于bug分析与异常处理的一些思考
前言:工作三年了,工作内容主要是嵌入式软件开发和维护,用的语言是C,毕业后先在一家工业自动化控制公司工作两年半,目前在一家医疗仪器公司担任嵌入式软件开发工作.软件开发中,难免不产生bug:产品交付客户 ...
随机推荐
- 运维常用python库&模块
sutil:是一个跨平台库(https://github.com/giampaolo/psutil)能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资 ...
- kafka生产者和消费者api的简单使用
kafka生产者和消费者api的简单使用 一.背景 二.需要实现的功能 1.生产者实现功能 1.KafkaProducer线程安全的,可以在多线程中使用. 2.消息发送的key和value的序列化 3 ...
- 计算机网络传输层之TCP拥塞控制(慢开始与拥塞避免、快重传和快恢复)
文章转自:https://blog.csdn.net/weixin_43914604/article/details/105532044 学习课程:<2019王道考研计算机网络> 学习目的 ...
- 洛谷 P5664 [CSP-S2019] Emiya 家今天的饭
链接: P5664 题意: 给出一个 \(n*m\) 的矩阵 \(a\),选 \(k\) 个格子(\(1\leq k\leq n\)),每行最多选一个,每列最多选\(⌊\dfrac k2⌋\) 个,同 ...
- [CSP-S 2021] 廊桥分配 题解
写篇题解来纪念我炸掉的CSP 唯一会做的题代码写挂了(痛苦面具 思路 我看到这道题第一眼想到的是线段树,感觉可以用线段树维护飞机入站到出战的这段时间,想了半天想不到代码怎么写. 国内机场与国外机场要分 ...
- 前端面试手写代码——JS函数柯里化
目录 1 什么是函数柯里化 2 柯里化的作用和特点 2.1 参数复用 2.2 提前返回 2.3 延迟执行 3 封装通用柯里化工具函数 4 总结和补充 1 什么是函数柯里化 在计算机科学中,柯里化(Cu ...
- C++中gSOAP的使用
目录 SOAP简介 gSOAP 准备工作 头文件 构建客户端应用程序 生成soap源码 建立客户端项目 构建服务端应用程序 生成SOAP源码 建立服务端项目 打印报文 SOAP测试 项目源码 本文主要 ...
- windows server 2012 开机运行一段时间死机的故障
环境: 物理机:华为2288 V5 虚拟化:esxi 6.5.2 虚拟操作系统 windwos server 2012 标准版 内安装sql server 和其他应用软件 故障描述:window se ...
- Nessus home版插件更新
1,进入服务器停止服务 service nessusd stop 2,进入目录执行命令获取Challenge code cd /opt/nessus/sbin/ ./nessuscli fetch - ...
- Screenshot 库和Collections 库
一.screenShot 是 robot framework的标准类库,用于截取当前窗口,需要手动加载. 示例: 运行结果: 二.Collections 库 Collections 库同样为 Robo ...