編寫自定義異常代碼,編譯出錯
在win7環境下編寫以下代碼并執行,結果出錯,提示沒有定義異常,但是代碼里明明定義了???
求指導??!
代碼:
class CustomError(Exception):
? ? def __init__(self, info):
? ? ? ? Exception.__init__(self)
? ? ? ? self.errorinfo = info
? ? ? ? print 'self.errorinfo'
? ? def __str__(self):
? ? ? ? return 'customError: %s'% self.error.info
try:
? ? raise customError("test")
except customError, e:
? ? print 'info:%s'%(e)
2017-07-01
自定義的異常名為:CustomError,引用時卻用的是customError。Python是大小寫敏感的,建議使用iPython,每次引用變量名時常按tab鍵自動補全功能,既提高代碼輸入效率,又能避免輸入錯誤。
2016-11-08
上述代碼錯誤原因:
1、上面定義的是?CustomError類,而后面捕獲異常的時候,是customError,大小寫錯誤,python對大小寫敏感。
2、定義的?CustomError類,return 返回出現錯誤,errorinfo中間有點,應該是連接在一起。
正確代碼如下(我的是python3環境):
class?CustomError(Exception): ????def?__init__(self,?info): ????????Exception.__init__(self) ????????self.errorinfo?=?info ????????print(self.errorinfo) ????def?__str__(self): ????????return?'customError:?%s'%?self.errorinfo try: ????raise?CustomError("test") except?CustomError?as?e: ????print('info:%s'%(e))2016-10-30
大小寫錯了,你定義的是CustomError,raise的是customError吧