浅谈python抛出异常、自定义异常, 传递异常
作者:hebedich 发布时间:2022-12-22 00:49:31
标签:python,抛出异常,自定义异常,传递异常
一. 抛出异常
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
0
投稿
猜你喜欢
- 一、安装mongo plugs插件File->SettingPlugins查询Mongo选择Search in repositorie
- 这篇文章主要介绍了python代码如何实现余弦相似性计算,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 1. 简介本文将介绍 Go 语言中的 sync.Cond 并发原语,包括 sync.Cond的基本使用方法、实现原理、使用注意事项以及常见的
- 背景:由于需要对ocr识别系统的表格识别结果做验证,通过返回的json文件结果对比比较麻烦,故需要将json文件里面的识别结果还原为表格做验
- 目录Python1 Python垃圾回收机制是什么2 元组和列表的区别3 元组可以作为字典的key?4 进程 线程 协程4.1 进程4.2
- 上一篇相关文章:段正淳的css笔记(2)圆角的做法 1、标题右侧“更多”的实现曾经做上图所示的效果,会使用到position来相对定位到h2
- ajax.html <html><head> <met
- 下文要实现的可视化大屏内容:需要在地图上将我司船舶的轨迹展示出来。听起来很简单,一开始我也是这样想的。通过一些BI工具应该可以轻松实现,比如
- 该域名查询系统写的很简单,只是实现了功能使用XmlHttp来获取远程查询结果,实际上就是小偷程序!相关推荐:域名注册情况查询/
- 1.Ansible Inventory 介绍;Ansible Inventory 是包含静态 Inventory 和动态 Inv
- 列表是Python中最基本的数据结构,列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。列表中的每个元素都分配一个数字
- 学习使用存储过程(Stored Procedure),是ASP程序员的必须课之一。所有的大型数据库都支持存储过程,比如Oracle
- 前言PHP5.3之后支持了类似Java的jar包,名为phar。用来将多个PHP文件打包为一个文件。首先需要修改php.ini配置将phar
- 我们可用如下代码进行监控:函数中使用了fso对象来读取文件属性。Function File_GetLastModifi
- 本教程将分步讲解如何使用JQuery和CSS打造一个炫酷动感菜单。jQuery的"write less, do more"
- 1.1.propety动态属性在面向对象编程中,我们一般把名词性的东西映射成属性,动词性的东西映射成方法。在python中他们对应的分别是属
- 突然想到写这个话题,是基于最近在设计产品界面时,年糕一直在给我们灌输设计的品牌概念以及文化内涵要求而产生的,因之前在界面设计中也遇到一些困惑
- 很早以前就说过,IE8的标准模式已经不再支持滤镜了,不过IE仍然留了一条后路,你可以在CSS中这样写滤镜:-ms-filter
- 前言前言:想写这个代码的原因是因为实习的时候需要根据表格名创建对应的文件夹,如果只是很少个数文件夹的话,ctrl+shift+n还可以接受吧
- div的内容为:<div style="background-color: rgb(255, 238, 221);"