我想知道一個用戶定義的異常,我在我的Python程序中從一個類中提出的,沒有被我的main()
中正確的異常處理程序處理。說我有一個類:爲什麼我的用戶定義的異常沒有正確處理?
class Pdbalog:
# Constructor
def __init__(self, logtype):
if logtype == 1 or logtype == 2:
# These are valid
self.logtypeV = logtype
...<continue processing>
else:
# Invalid
raise Exception("Invalid Logtype")
我main
樣子:
from pdbalog import *
def main():
try:
mylog = Pdbalog(10)
...<other code here>
except "Invalid Logtype":
print('Exiting...')
except:
print('Unhandled exception')
raise
時main
是運行在那裏我實例化Pdbalog
對象的行會拋出一個例外(Exception("Invalid Logtype")
)我期望和主(except "Invalid Logtype"
)中的異常處理程序將打印輸出字符串"Exiting..."
。但是,它沒有。它由未處理的異常處理程序處理。結果發生的是字符串"Unhandled exception"
正在輸出。爲什麼不是
except "Invalid Logtype":
處理異常?
我使用的是舊版本的python(2.4)。一個錯誤消息
class InvalidLogType(Exception):
pass
然後
raise InvalidLogType()
然後
except InvalidLogType:
etc
捉基於錯誤的信息,我認爲你忘了添加'嘗試:''中的main()',我補充道。因爲我也是Python學習者。請檢查我的編輯....並祝賀1K :) –