我正在为CPP目标编写使用Haxe的应用程序的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?
你可以简单地将你的main()
包裹在一个 try-catch 中:
class Main {
static function main() {
try {
entryPoint();
} catch (e:Any) {
// do something with e
}
}
}
例如,OpenFL也几乎就是这样实现Flash未捕获的错误事件。
请注意,并非所有异常都可以在 hxcpp 中以这种方式捕获。例如,只有在定义了 HXCPP_CHECK_POINTER
时,才能捕获空指针异常。