浅谈python抛出异常、自定义异常, 传递异常
作者:hebedich 时间:2022-12-22 00:49:31
一. 抛出异常
Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。
raise 语句
Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示:
import traceback
def throw_error():
raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
print("飞天猪")
throw_error()
#运行结果:
'''Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\systray.py", line 7, in <module>
throw_error()
File "C:\Users\Administrator\Desktop\systray.py", line 4, in throw_error
raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
Exception: 抛出一个异常'''
raise关键字后面是抛出是一个通用的异常类型(Exception),一般来说抛出的异常越详细越好
二.传递异常:
捕捉到了异常,但是又想重新引发它(传递异常),可以使用不带参数的raise语句即可:
class MufCalc(object):
m = False
def calc(self,exp):
try:
return eval(exp)
except ZeroDivisionError:
if self.m:
print("cool")
else:
raise
app = MufCalc()
app.calc(2/0)
三.自定义异常类型:
Python中也可以自定义自己的特殊类型的异常,只需要要从Exception类继承(直接或间接)即可:
class MyError(Exception):
pass
标签:python,抛出异常,自定义异常,传递异常
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
微信小程序位置授权处理方法
2024-06-10 08:21:05
python3中TQDM库安装及使用详解
2023-02-17 20:05:55
![](https://img.aspxhome.com/file/2023/2/86322_0s.png)
python接口调用已训练好的caffe模型测试分类方法
2021-08-11 18:31:04
![](https://img.aspxhome.com/file/2023/7/70107_0s.jpg)
Python Asyncio中Coroutines,Tasks,Future可等待对象的关系及作用
2021-02-09 02:01:47
![](https://img.aspxhome.com/file/2023/0/131590_0s.png)
ASP.NET 2.0中的数据操作之九:跨页面的主/从报表
2023-07-19 20:28:42
![](https://img.aspxhome.com/file/2023/5/75525_0s.png)
Python深入学习之对象的属性
2022-11-17 03:47:34
jQuery判断checkbox选中状态
2024-04-22 22:33:18
Python遗传算法Geatpy工具箱使用介绍
2021-11-02 02:21:16
![](https://img.aspxhome.com/file/2023/8/105598_0s.png)
解决pandas使用read_csv()读取文件遇到的问题
2021-08-29 18:31:02
python实现提取百度搜索结果的方法
2021-05-13 20:27:21
Pycharm连接远程服务器并实现远程调试的实现
2024-01-03 06:25:05
![](https://img.aspxhome.com/file/2023/7/65897_0s.png)
通过python顺序修改文件名字的方法
2023-05-20 08:05:29
![](https://img.aspxhome.com/file/2023/9/127829_0s.jpg)
详解Go程序添加远程调用tcpdump功能
2024-05-21 10:18:45
![](https://img.aspxhome.com/file/2023/5/125075_0s.png)
MySQL中datetime和timestamp的区别及使用详解
2024-01-19 05:58:28
python爬取内容存入Excel实例
2022-06-05 16:31:47
tensorflow 保存模型和取出中间权重例子
2021-05-11 07:30:11
anaconda python3.8安装后降级
2021-09-12 05:28:51
![](https://img.aspxhome.com/file/2023/4/126964_0s.png)
python字符串操作详析
2022-09-14 04:57:08
![](https://img.aspxhome.com/file/2023/9/103329_0s.png)
详解如何在Go项目中输出版本信息
2024-04-26 17:17:20
Python去除PDF水印的实现示例
2022-08-13 19:26:45
![](https://img.aspxhome.com/file/2023/3/100803_0s.png)