python3_裝飾器_異常處理

裝飾器:


def auth(func):
    def wrapper(name):                     如果函數帶參數,要加在這裏
        user=raw_input("input passwd:").strip()
        if user=='test':
            print "welcome login"
            func(name)              如果函數帶參數,要加在這裏
        else:
            print "auth is denied"
    return wrapper
@auth
def task(name):                                 帶參數的函數
    print "do something"


task(name)

異常處理:
try:
    name="kim"
    name_list=['kim','deng','min']
    print Name
#    print name_list[4]
except NameError,err:   
    print err
print '--do sth else--'

except Exception,e:         可以抓住所有的異常
    print ''

else:                  沒有抓住異常則else
    print ''
finally:                無論有沒有異常都會執行
    print ''

手動觸發異常:
class myException(Exception):
    pass
try:
    code
    raise myException
except ......


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章