异常分类及为什么使用异常,异常角色

# -*- 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 '**'*15
try:
    raise IndexError
except IndexError:
    print 'get exception~~'
#使用raise引发异常几种方式:
#raise 异常名
#raise 异常名,附加数据
#raise 类名
#案例
class My():
    def __init__(self):
        self.name='xiaodeng'
        self.age=28
    def myprint(self):
        return self.name

my=My()
print my.myprint()#xiaodeng
原文地址:https://www.cnblogs.com/dengyg200891/p/4923141.html