# -*- coding: utf-8 -*-#python 27#xiaodeng#Python学习手册 856#异常分类及为什么使用异常,异常角色#异常分类: #try/except:捕捉由python或你引起的异常并恢复 #try/finally:无论异常是否发生,执行清理行为 #raise:手动在代码中触发异常。 #assert:有条件地在程序代码中触发异常。 #with/as:可选功能#为什么使用异常?#更加快速的发现代码中的错误,定位错误,以便程序的修改和调试。#通俗点讲就是:这段程序哪里错呢?怎么找到这个错误的一个工具~~~#异常的角色 #859 #错误处理:每当在运行时检测到程序错误时,python就会引发异常。 #事件通知:异常也是用于发出有效状态的信号,而不需在程序间传递结果标志位,或者刻意对其进行测试。 #搜索的程序可能在失败时引发异常,而不是返回一个整数结果代码。 #特殊情况处理: #终止行为: #非常规控制流程:#异常处理:简明扼要#捕获异常#案例:def fetcher(obj,index): return obj[index]try: #fetcher(x,4) print 'index:',fetcher('xiaodeng',4)except IndexError: print 'name:xiaodeng'#引发异常:主要是在开发中进行调试。#要直接触发异常,则可以直接执行raise语句。print '**'*15try: raise IndexErrorexcept IndexError: print 'get exception~~'#使用raise引发异常几种方式:#raise 异常名#raise 异常名,附加数据#raise 类名#案例class My(): def __init__(self): self.name='xiaodeng' self.age=28 def myprint(self): return self.namemy=My()print my.myprint()#xiaodeng