当程序出现错误,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相关推荐

  1. Python——raise引发异常

    Python--raise引发异常 参考文章: (1)Python--raise引发异常 (2)https://www.cnblogs.com/mingmingming/p/11254596.html ...

  2. python raise用处_python基础教程python raise的基本使用

    简介 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了raise语句,raise后面的语句将不能执行. 1.演示raise用法 try: s = None i ...

  3. python raise的基本使用

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接:好看站 http://www.nrso.net/ 高州阳光论坛https://www.hnthzk.com/ 简 ...

  4. python raise函数_Python raise用法

    有读者可能会问,编写代码时能否手动抛出一个异常吗?答案是肯定的,Python 允许程序自行引发异常,使用 raise 语句即可. 异常是一种很"主观"的说法,以下雨为例,假设大家约 ...

  5. Python | raise...from... 是个什么操作?

    点击上方"小詹学Python",选择"加为星标" 第一时间关注Python技术干货! 作者:weapon 原文:https://zhuanlan.zhihu.c ...

  6. python raise语句_python中异常报错的分析处理

    想必到现在经过python基础的学习之后,小伙伴们都已经开始写很多脚本了,有大的有小的,但是有的时候并不是所写的能够顺利跑出结果来,期间会有不但的报错以及异常,很多我们都不理解,所以也就不会修改,这是 ...

  7. python raise语句_Python异常处理,告别xxxxError!

    程序在运行的过程中,产生了异常,这时,我们可能会有两种想法,第一种是针对这个异常做某些特殊的处理来进行程序的降级处理:第二种是希望程序忽略这个异常继续执行下去,这个异常可能并不干扰主逻辑的执行. 那这 ...

  8. python raise和except区别_python raise和assert的区别

    python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...

  9. Python raise用法(超级详细,看了无师自通)

    当程序出现错误时,系统会自动引发异常.除此之外,Python 也允许程序自行引发异常,自行引发异常使用 raise 语句来完成. 异常是一种很"主观"的说法,以下雨为例,假设大家约 ...

最新文章

  1. PyTorch实战GANs
  2. 通过NAT转发实现私网对外发布信息
  3. php protobuf 二进制,PHP环境中使用ProtoBuf数据格式
  4. HTML基础 DOM概览(第一天)
  5. PHP编写shell
  6. NSArray遍历和修改崩溃
  7. 基于微信云开发的简单商城小程序源码与配置指导
  8. .html页面缓存问题
  9. C++语句 与简单方法
  10. (Cys-RGD)包被CdTe量子|3-巯基丙酸(MPA)包被近红外发光CdTe量子
  11. 破解版百度云【亲测好用】完美解决限速
  12. Buuctf --hellow world
  13. Flooding、Gossiping、SPIN、DD路由、Rumor路由这五个协议的区别和联系
  14. 你还不知道如何去学习3D建模,那你来找我,我教你
  15. mysql 五舍六入_四舍六入五成双(适用于MYSQL)(最大支持小数点第9位)
  16. Wi-Fi Display
  17. 线性回归模型的度量参数1- SST SSR SSE R-Squared
  18. 如何查看计算机网络密码是什么意思,电脑网络共享密码要怎么查找
  19. CSDN产品周报第19期|CodeChina正式更名为GitCode、不存在有效回答的免费提问也支持自主结题啦
  20. 机器学习(浙大课程b站)第四章

热门文章

  1. Tipard Video Converter Ultimate如何旋转视频?
  2. NOI入门级数学: 数及其运算 数的进制之二进制
  3. ij运行tomcat_如何把本地Web项目部署到云服务器上
  4. Postman|Qt笔记-解决Could not get any response
  5. Java工作笔记-Spring Boot + Jdbc + dm7Driver访问数据库(Spring Boot连接达梦数据库)
  6. Qt学习笔记-国际化
  7. RESTful API实现APP订餐实例
  8. 3dcaptcha php,php实现的Captcha验证码类实例
  9. mysql 多值属性_数据库 名词解释:单值属性和多值属性
  10. python中计算列表的平均值_如何计算python中元组列表的平均值?