Haxe未捕获的全局异常处理程序

时间:2019-03-25 16:50:28

标签: exception error-handling haxe hxcpp

我正在使用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中有任何支持吗?

1 个答案:

答案 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时,才能捕获例如空指针异常。