Python——raise引发异常
程序出现错误,会自动引发异常,Python也允许使用raise语句自行引发异常。
一、使用raise引发异常
单独一个raise引发异常,默认引发RuntimeError异常,例:
try:
print ('正在运行try块...')
raise
print ('不再运行...')
except Exception as e:
print ('正在运行except块...') # 运行结果
正在运行try块...
正在运行except块...
raise后带一个异常类,引发指定异常类的默认实例,例:
def test():
try:
print ('正在运行try块...')
raise SyntaxError('引发指定异常...')
print ('不再运行...')
except TypeError as e:
print ('对类型无效的操作...',e)
except ValueError as e:
print ('传入无效的参数...',e)
except SyntaxError as e:
print ('语法错误...',e) test() # 运行结果
正在运行try块...
语法错误... 引发指定异常...
二、自定义异常类
Python运行自定义异常类,自定义异常都应该继承Exception基类或Exception的子类,自定义类大部分情况下都可以采用AuctionException.py类似的代码来完成,只要改变AuctionException异常的类名即可(使类名更准确的描述该异常)。
自定义一个异常类,例:
class CustomException(Exception):
pass def test():
try:
raise CustomException
except CustomException:
print ('触发异常...') test()
# 运行结果
触发异常...
三、except和raise组合使用
当出现一个异常时,单单靠一个方法无法完全处理该异常,必须使用几个方法协作才能完全处理该异常时,就用到except块结合raise语句来完成。
例:
# 自定义异常
class CustomException(Exception):
pass class Test:
def custom(self):
try:
aaa
except Exception as e:
print ('出现异常:',e)
raise CustomException('触发自定义异常~') def test():
T = Test()
try:
T.custom()
except CustomException as e:
print ('test函数捕获异常;',e) test()
# 打印
出现异常: name 'aaa' is not defined
test函数捕获异常; 触发自定义异常~
上面程序中,aaa触发了NameError异常,执行Test类中的except块,打印错误信息后,通知该方法调用者再次处理CustomException异常,所以custom()方法的调用者test()函数可以再次捕获CustomException异常,把异常详细信息打印出来。
Python——raise引发异常的更多相关文章
- python自定义异常,使用raise引发异常
1.自定义异常类,自定义的异常类必须是Exception或者Error的子类! 1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 class Illega ...
- python——异常except语句用法与引发异常
except: #捕获所有异常 except: <异常名>: #捕获指定异常 except:<异常名1,异常名2):捕获异常1或者异常2 except:<异常名>,< ...
- 从0开始的Python学习016异常
简介 当你的程序不能正常运行的时候,Python会在控制台打印一段提醒,告诉你一个错误,这个错误就是异常. 错误 我在控制台写了一段无效的代码,将print()的括号去掉,在执行这条语句的时候,系统提 ...
- python学习笔记——异常
转自 http://www.cnblogs.com/rubylouvre/archive/2011/06/22/2086644.html Python内建异常体系结构 BaseException +- ...
- python笔记之异常
异常 內建异常在exceptions模块内,使用dir函数列出模块的内容. 自定义异常类:继承基类Exception. 异常可以使用raise语句引发,可以使用try ... except ... e ...
- python raise和assert的区别
python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...
- python raise
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了raise语句,raise后面的语句将不能执行. 演示raise用法 try: s = None if s ...
- 13.python错误和异常
一.错误和异常1.程序中的错误分为俩种:(1)语法错误:不按照语言的规则,必须在程序执行前就改正(2)逻辑错误2.异常就是程序运行时发生错误的信号,分为三部分(1)Traceback:异常追踪的信息( ...
- python大法好——异常
---恢复内容开始--- Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Pyth ...
随机推荐
- Spring boot Security 登陆安全配置
实现的效果 访问url时,如果未登录时跳转到Login界面,要求用户登陆,如果登陆过返回请求的数据. 效果图 访问数据时,未登录返回login界面 登陆操作 登陆成功进入登出界面 登陆成功后再次访问数 ...
- kafka集群搭建(图文并用)
将安装包上传服务器并解压 scp kafka_2.11-1.0.0.tgz username@{ip}:~/. mkdir /usr/local/kafka mv kafka_2.11-1.0.0.t ...
- C仿黑白棋版XO棋
两位玩家轮流在棋盘上放置不同颜色的棋子,一位玩家使用黑子,另一位使用白子,棋盘是一个偶数正方形. 只能将一个棋子放在对手的棋子旁边,使对手在水平.垂直.对角线方向上的棋子变成自己的棋子,游戏结束时,棋 ...
- python编译exe后在windows2003上报错
最近使用python写了一个分析nmon结果的小程序,用的是python3.8.win7环境,pyinstaller生成exe后,在win7上运行一切正常.拿到内网分享给团队成员,在windows20 ...
- 利用pgAgent创建定时任务
使用Postgresql自带的pgAgent,可以很方便地创建定时执行任务.现在网上的资料都比较旧,Postgresql版本更新得比较快,导致网上的一些教程都不合用了,现在我写分享一下自己的经验. P ...
- Oracle Trace文件生成及查看
2011-11-03 16:45:01 聪明的笨蛋 阅读数 39596更多 分类专栏: 6) Database 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...
- MAC 上抓取网页数据的工具有哪些?
我希望能够从网页上, 比如气象局数据, 财经数据等等, 我看到官方提供的数据都比较混乱, 有的是一个php文件, 有的是一个文本, 有的干脆不提供数据, 我想问, Mac上, 用什么工具去抓数据, 以 ...
- MXNet/Gluon 中网络和参数的存取方式
https://blog.csdn.net/caroline_wendy/article/details/80494120 Gluon是MXNet的高层封装,网络设计简单易用,与Keras类似.随着深 ...
- springboot+jwt完成登录认证
本demo用于测试jwt,通过登录验证通过后,使用jwt生成token,然后在请求header中携带token完成访问用户列表信息. 准备工作: 1. 实体类SysUser.java package ...
- shell编程系列23--shell操作数据库实战之mysql命令参数详解
shell编程系列23--shell操作数据库实战之mysql命令参数详解 mysql命令参数详解 -u 用户名 -p 用户密码 -h 服务器ip地址 -D 连接的数据库 -N 不输出列信息 -B 使 ...