| 作用:处理程序异常、抛出异常、友好输出异常 1. 如何捕获异常、处理异常格式: try:pass
 except ValueError as e:
 pass
 except Exception as e:
 pass
 else:
 pass
 finally:
 pass
 
 相关注释:
 
 try    包含在try下的所有代码块都会进行异常检测处理
 execpt    处理异常 其后面的e(标准故障信息)可以指定也可以不指定
 finally   不管是否出现异常都会执行其下面的代码块
 具体如下图所示: 
 2. 异常的种类上面的故障处理模块只检测了Exception异常类,其实这个故障是所有异常的基类(父类) 无论什么异常都可以用他进行处理,不过在程序中要处理指定异常那么就必须使用相关的派生类(子类)比如: IndexError 下标错误 KeyError key错误 NameError 名称错误 ValueError 值错误 … 那么如果我定义了NameError 和 ValueError Exception等等这些异常处理标签如果我有一个ValueError的异常该如何进行处理呢?请看下图 
 异常会从上到下一条条匹配异常处理标签直到匹配到为止 ExceptError在正常情况下放在异常处理程序的最末端 来处理未知异常,如果有些异常需要特殊操作为,放在“except ExceptError”的上面。 3. 自定义异常了解自定义异常之前 首先需要理解两个概念: 1. 类中的方法__str__(self) 执行类的时候会返回其中的内容 用于输出异常信息 例如: #定义Alan_class类class Alan_class(Exception):
     #定义__str__方法def __str__(self):
        #指定输出信息return 'Alan Error'
 #执行类Alan_classprint Alan_class()
 输出结果为: Alan Error 2. raise 抛出异常比如 执行 raise ValueError() 那么就会抛出一个 ValueError值错误的异常 了解完上面的两个知识点下面开始了解如何进行定义自己的异常 
 通过上图我们简单的梳理下: 第一步:定义异常   class 异常名称 (Exception):       def __init__(self,msg)             self.message=msg       def __str__(self):  //定义__str__函数处理异常             判断是否输入了自定义的异常信息             if 输入了:                 return ‘自定义异常信息’             else:                 rerun ‘默认异常信息’ 第二步:抛出并处理异常   raise 异常名称(‘自定义异常信息’) //触发异常 except 异常名称,异常信息       print 异常信息   4. assert 断言如果assert断言的条件为假,则抛出异常AssertError,等同于 判断+raise try:     #如果两个字符串不相等则为假抛出异常assert 'Lisa' == 'Alan'
 #except处理异常except Exception:
 print 'name not same'
 执行结果: name not same |