我正在使用Haxe作为CPP目标编写应用程序的UI。我需要先拦截haxe错误/异常,然后才能使应用程序崩溃。
下面是使应用程序崩溃的代码示例:
@:final private function callFoo(classA : IInterface) : Void
{
if ((mClassLevelVariable != null) && (classA != mClassLevelVariable))
{
throw new Error("Can not work with " + Type.getClassName(Type.getClass((classA))));
}
}
我需要在崩溃之前拦截崩溃,如上面给出的那样使应用程序崩溃。像Java提供的Thread.UncaughtExceptionHandler
一样,我们在Haxe中有任何支持吗?
答案 0 :(得分:4)
您只需将main()
包装在try-catch中:
class Main {
static function main() {
try {
entryPoint();
} catch (e:Any) {
// do something with e
}
}
}
也几乎是how for instance OpenFL implements Flash's uncaught error event。
请注意,并非所有异常都可以通过这种方式在hxcpp中捕获。仅当定义HXCPP_CHECK_POINTER
时,才能捕获例如空指针异常。