使用raise语句自己触发异常
2017-09-28 16:24
204 查看
raise语法格式如下:
raise [Exception [, args [, traceback]]]
语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值。该参数是可选的,如果不提供,异常的参数是"None"。
最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。
实例
一个异常可以是一个字符串,类或对象。 Python的内核提供的异常,大多数都是实例化的类,这是一个类的实例的参数。定义一个异常非常简单,如下所示:
def functionName( level ): if level < 1: raise Exception("Invalid level!", level) # 触发异常后,后面的代码就不会再执行
注意:为了能够捕获异常,"except"语句必须有用相同的异常来抛出类对象或者字符串。
例如我们捕获以上异常,"except"语句如下所示:
try: 正常逻辑 except "Invalid level!": 触发自定义异常 else: 其余代码
实例
#!/usr/bin/python # -*- coding: UTF-8 -*- # 定义函数 def mye( level ): if level < 1: raise Exception("Invalid level!", level) # 触发异常后,后面的代码就不会再执行 try: mye(0) // 触发异常 except "Invalid level!": print 1 else: print 2
执行以上代码,输出结果为:
$ python test.py Traceback (most recent call last): File "test.py", line 11, in <module> mye(0) File "test.py", line 7, in mye raise Exception("Invalid level!", level) Exception: ('Invalid level!', 0)
相关文章推荐
- python触发异常——raise语句
- python中异常处理--raise的使用
- .“在JAVA中,异常子类必须在它们任何父类之前使用,因为运用父类的catch语句将捕获该类型及其所有子类类型的异常。这样,后面运行子类的catch语句将永远不会到达。而且,Java中不能到达的代码是一个错误。”
- 使用Java创建自己的异常子类
- Java异常处理之try...catch...语句的使用进阶
- python中异常处理--raise的使用
- 使用Java创建自己的异常子类
- 嵌入SQL中(DB2)异常处理WHENEVER语句的使用
- python中自定义一个异常,使用raise引发异常
- python中异常处理--raise的使用
- C#学习使用try-catch-finally错误处理表达式(续)--定义自己的异常消息类
- NHibernate使用时,不能返回自己的异常的解决办法
- 关于spring整合hibernate使用update无异常但没有效果(不输出sql语句)
- 使用两个不同类型的数据进行加法计算时,使用异常处理语句捕获由于数据类型错误而出现的异常,发生生成错误。是否继续并运行上次的成功生成?
- 在VC程序中使用调试语句----(三)异常
- 存储过程中使用RETURN语句返回数值,.Net里用ExecuteScalar方法结果将会导致一个未引用到具体对象的异常
- 所有的异常都要使用try catch 语句捕获?
- PRB:在 SQL Server 中使用 COMPUTE BY 子句时出现“COMPUTE BY Statements Not Supported”(不支持 COMPUTE BY 语句)异常
- 故障:使用Struts2框架,表单提交后,抛异常,得不到自己想要的回复。
- C#使用OleDb连接Excel数据源编写查询语句捕获到“无法识别的关键字when”的异常