我想知道我在我的 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)。