我想知道我在我的 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")
),而 main( except "Invalid Logtype"
) 中的异常处理程序将打印输出字符串"Exiting..."
。但是,事实并非如此。它正在由未处理的异常处理程序处理。最终发生的"Unhandled exception"
是正在输出字符串。为什么不是
except "Invalid Logtype":
处理异常?
我正在使用旧版本的 python (2.4)。