一:常见的内置异常
- BaseException: 所有异常的基类
 - Exception:几乎所有的异常类都是从它派生而来的。
 - AttributeError:引用属性或给它赋值失败时引发。
 - OSError 操作系统不能执行指定的任务(如打开文件)时引发,有多个子类。
 - IndexError:使用序列中不存在的索引时引发,为LookupError的子类。
 - KeyError:使用映射中不存在的键触发,为LookupError的子类。
 - NameError:找不到名称(变量)时引发。
 - SyntaxError:代码不正确时引发。
 - TypeError:将内置操作或函数用于类型不正确的对象时引发的。
 - ValueError:将内置操作或函数用于这样的对象时引发:其类型正确但包含的值不合适。
 - ZeroDivisionError:在除法或求模运算的第二个参数为零时引发。
 - AssertionError:断言语句失败
 - RuntimeError:一般的运行时错误
 
二:自定义异常
class BusinessError(Exception):
    def __init__(self, code, value):
        self.code = code
        self.value = value
    def __str__(self):
        return repr(self.code + ' ' + self.value)三:基础使用
try:
    raise BusinessError('500', "抛出一个自定义异常")
except BusinessError as err:
    print("BussinessError: {0}".format(err))
except ValueError:
    print("ValueError")
except:
    print("unexcepted error")
    # 不处理异常,再次抛出去
    raise
else:
    # else中的代码发生异常不会执行except代码块
    print("else")
finally:
    print("finally")                










