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