5

我收到这样的错误:

2010-07-13 20:43:15.131 Python[1527:60f] main: 捕获 OC_PythonException: : LoginMenuSet 实例没有属性“play_sound”

这就是这段代码:

@try {
    [section loop]; //Loop through section
} @catch (NSException *exception) {
    NSLog(@"Caught %@: %@", [exception name], [exception reason]);
}

我希望 python 异常与回溯和其他所有内容一起正常打印。

谢谢你。

4

2 回答 2

9

查看 Python 异常的一个技巧是调用objc.setVerbose(1). 这使得 PyObjC 更加冗长,并导致它在将异常从 Python 转换为 Objective-C 时打印 Python 堆栈跟踪。

于 2010-08-31T14:01:12.280 回答
0

这是我自己的解决方案:

在 Objective-C 类中:

@try {
        [section loop]; //Loop through section
    } @catch (NSException *exception) {
        NSLog(@"main: Caught %@: %@", [exception name], [exception reason]);
        [self exception: [[exception userInfo] valueForKey: @"__pyobjc_exc_traceback__"]];
    }

在 python pyobjc 子类中:

def exception_(self,trace):
        traceback.print_tb(trace)
        NSApplication.sharedApplication().terminate_(None) #Accept no errors

当然,我导入了 traceback 模块。

于 2010-09-01T12:24:13.200 回答