python Exception 异常处理
2013-05-29 15:36
381 查看
Python 使用异常对象(exception object)来表示异常情况,遇到错误后,会引发异常。如果异常对象没有被捕获或者处理,程序就会用回溯(Tracback,一种错误信息)终止执行。
我们知道异常信息可以提示出错的信息,所有的异常都是基类Exception的子类,自定义异常可以从Exception类中继承。
常见的异常有:
![](http://img.blog.csdn.net/20130529153626485)
使用异常的语句形式:
方式一: 使用try,except语句处理,当有多个异常时,可以使用多个except语句处理
注意:当处理多个异常时,如果有继承异常时,子类(异常)要放到父类(异常)的前面,否则处理父类异常会截获子类异常。
方式二: 当没有发生异常时,执行else语句(类似与if else语句)
方式三:使用finally语句,当有没有异常时多执行finally语句块
except 语句块可以省略。
python语言也支持自定义异常,自定义异常需要从基类Exception继承。
自定义一个异常类(MyException)
使用自定义异常类处理
上述代码中的raise关键字是用来引发异常的,使用的方法,raise + 异常的名字
raise语句还可以对异常对象进行初始化的参数,使用的方法,在异常类的名称后面添加一个逗号以及指定的参数。
例如:raise ValueError, 'invalid argument'
我们知道异常信息可以提示出错的信息,所有的异常都是基类Exception的子类,自定义异常可以从Exception类中继承。
常见的异常有:
使用异常的语句形式:
方式一: 使用try,except语句处理,当有多个异常时,可以使用多个except语句处理
ty: code..... except [exception,[data....]: code...... except [exception,[data....]: code...... except [exception,[data....]: code......
注意:当处理多个异常时,如果有继承异常时,子类(异常)要放到父类(异常)的前面,否则处理父类异常会截获子类异常。
方式二: 当没有发生异常时,执行else语句(类似与if else语句)
try: code..... except [exception,[data...]]: code...... else: code......
方式三:使用finally语句,当有没有异常时多执行finally语句块
try: code.... except [exception,[data...]]: code..... finally: code.....
except 语句块可以省略。
python语言也支持自定义异常,自定义异常需要从基类Exception继承。
自定义一个异常类(MyException)
class MyException(Exception): pass
使用自定义异常类处理
try: raise MyException except MyException: print 'a Error'
上述代码中的raise关键字是用来引发异常的,使用的方法,raise + 异常的名字
raise语句还可以对异常对象进行初始化的参数,使用的方法,在异常类的名称后面添加一个逗号以及指定的参数。
例如:raise ValueError, 'invalid argument'
相关文章推荐
- 关于wcf异常异常信息:由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribut
- EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
- python 中的异常处理
- 13.3、异常处理——DefaultHandlerExceptionResolver
- Python异常处理try...except...finally raise assert
- jeecg全局异常处理GlobalExceptionResolver修改,改善用户体验度
- C#调用参数为函数指针的API函数 - 以SetUnhandledExceptionFilter为例编写一个全局异常处理程序
- struts2的java.lang.NoSuchMethodException异常处理 \
- 使用@ControllerAdvice及@ExceptionHandler(value = Exception.class)全局异常处理
- python3的异常处理
- Android3.0版本以上出现android.os.NetworkOnMainThreadException异常与处理方式
- Exception---Android中处理崩溃异常
- python 异常处理
- Python检测和处理异常
- System.AccessViolationException”类型的未经处理的异常在 System.Data.dll 中发生。其它信息:尝试读取或写入受保护的内存。这通常指示其它内存已损坏。
- python 异常处理
- Python3.x的异常处理机制
- android.content.res.Resources$NotFoundException 异常处理
- Android NetworkOnMainThreadException异常处理
- Python学习(17)异常处理