python raise
当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。
演示raise用法
a = 0 #30if a > 1:print "1111"
else:raise "22222222222"print "333333333333"
try:s = Noneif s is None:print "s 是空对象"raise NameError #如果引发NameError异常,后面的代码将不能执行print len(s) #这句不会执行,但是后面的except还是会走到
except TypeError:print "空对象没有长度"s = None
if s is None:raise NameError
print 'is here?' #如果不使用try......except这种形式,那么直接抛出异常,不会执行到这里
触发异常
我们可以使用raise语句自己触发异常
raise语法格式如下:
raise [Exception [, args [, traceback]]]
语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。
最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。
实例
一个异常可以是一个字符串,类或对象。 Python的内核提供的异常,大多数都是实例化的类,这是一个类的实例的参数。
定义一个异常非常简单,如下所示:
def functionName( level ):if level < 1:raise Exception("Invalid level!", level)# 触发异常后,后面的代码就不会再执行
注意:为了能够捕获异常,"except"语句必须有用相同的异常来抛出类对象或者字符串。
例如我们捕获以上异常,"except"语句如下所示:
try:正常逻辑
except Exception,err:触发自定义异常
else:其余代码
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 定义函数
def mye( level ):if level < 1:raise Exception,"Invalid level!"# 触发异常后,后面的代码就不会再执行
try:mye(0) # 触发异常
except Exception,err:print 1,err
else:print 2
执行以上代码,输出结果为:
$ python test.py
1 Invalid level!python3.6以后 改为
def mye( level ):if level < 1:raise Exception("Invalid level!")# 触发异常后,后面的代码就不会再执行
try:mye(0) # 触发异常
except Exception as err:print(1,err)
else:print(2)
python raise相关推荐
- Python——raise引发异常
Python--raise引发异常 参考文章: (1)Python--raise引发异常 (2)https://www.cnblogs.com/mingmingming/p/11254596.html ...
- python raise用处_python基础教程python raise的基本使用
简介 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了raise语句,raise后面的语句将不能执行. 1.演示raise用法 try: s = None i ...
- python raise的基本使用
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接:好看站 http://www.nrso.net/ 高州阳光论坛https://www.hnthzk.com/ 简 ...
- python raise函数_Python raise用法
有读者可能会问,编写代码时能否手动抛出一个异常吗?答案是肯定的,Python 允许程序自行引发异常,使用 raise 语句即可. 异常是一种很"主观"的说法,以下雨为例,假设大家约 ...
- Python | raise...from... 是个什么操作?
点击上方"小詹学Python",选择"加为星标" 第一时间关注Python技术干货! 作者:weapon 原文:https://zhuanlan.zhihu.c ...
- python raise语句_python中异常报错的分析处理
想必到现在经过python基础的学习之后,小伙伴们都已经开始写很多脚本了,有大的有小的,但是有的时候并不是所写的能够顺利跑出结果来,期间会有不但的报错以及异常,很多我们都不理解,所以也就不会修改,这是 ...
- python raise语句_Python异常处理,告别xxxxError!
程序在运行的过程中,产生了异常,这时,我们可能会有两种想法,第一种是针对这个异常做某些特殊的处理来进行程序的降级处理:第二种是希望程序忽略这个异常继续执行下去,这个异常可能并不干扰主逻辑的执行. 那这 ...
- python raise和except区别_python raise和assert的区别
python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...
- Python raise用法(超级详细,看了无师自通)
当程序出现错误时,系统会自动引发异常.除此之外,Python 也允许程序自行引发异常,自行引发异常使用 raise 语句来完成. 异常是一种很"主观"的说法,以下雨为例,假设大家约 ...
最新文章
- PyTorch实战GANs
- 通过NAT转发实现私网对外发布信息
- php protobuf 二进制,PHP环境中使用ProtoBuf数据格式
- HTML基础 DOM概览(第一天)
- PHP编写shell
- NSArray遍历和修改崩溃
- 基于微信云开发的简单商城小程序源码与配置指导
- .html页面缓存问题
- C++语句 与简单方法
- (Cys-RGD)包被CdTe量子|3-巯基丙酸(MPA)包被近红外发光CdTe量子
- 破解版百度云【亲测好用】完美解决限速
- Buuctf --hellow world
- Flooding、Gossiping、SPIN、DD路由、Rumor路由这五个协议的区别和联系
- 你还不知道如何去学习3D建模,那你来找我,我教你
- mysql 五舍六入_四舍六入五成双(适用于MYSQL)(最大支持小数点第9位)
- Wi-Fi Display
- 线性回归模型的度量参数1- SST SSR SSE R-Squared
- 如何查看计算机网络密码是什么意思,电脑网络共享密码要怎么查找
- CSDN产品周报第19期|CodeChina正式更名为GitCode、不存在有效回答的免费提问也支持自主结题啦
- 机器学习(浙大课程b站)第四章
热门文章
- Tipard Video Converter Ultimate如何旋转视频?
- NOI入门级数学: 数及其运算 数的进制之二进制
- ij运行tomcat_如何把本地Web项目部署到云服务器上
- Postman|Qt笔记-解决Could not get any response
- Java工作笔记-Spring Boot + Jdbc + dm7Driver访问数据库(Spring Boot连接达梦数据库)
- Qt学习笔记-国际化
- RESTful API实现APP订餐实例
- 3dcaptcha php,php实现的Captcha验证码类实例
- mysql 多值属性_数据库 名词解释:单值属性和多值属性
- python中计算列表的平均值_如何计算python中元组列表的平均值?