python的异常分为两种.
1、内建异常,就是python自己定义的异常。如:RuntimeError、IOError、IndentationError等
2、用户自定义异常。
常见的内置异常有:
用户自定义异常首先需要继承Exception类
如:
Class CustomerError(Exception):
def __init__(self, message):
self.message = message
raise语句的语法格式为:
raise [Exception [, args [, traceback]]]
语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。
最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。
Python的内核提供的异常,大多数都是实例化的类。
下面我们实现一个自定义的异常类:
#coding:utf8 class CustomError(Exception): def __init__(self, ErrorInfo): # super(self).__init__(self) self.errorinfo = ErrorInfo def __str__(self): return self.errorinfo
为了能够捕获异常,"except"语句必须有用相同的异常(或者直接抛出Exception)来抛出类对象或者字符串。
例如我们捕获以上异常,"except"语句如下所示:
#coding:utf8 class CustomError(Exception): def __init__(self, ErrorInfo): # super(self).__init__(self) self.errorinfo = ErrorInfo def __str__(self): return self.errorinfo if __name__ == '__main__': try: raise CustomError("xxxx") except CustomError as e: # except Exception as e: print(e)
注: 当类自己定义了__str__(self)
方法,那么当raise这个类实例时,就会返回从这个方法中return的数
总结: