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

问题描述 投票:4回答:1

我正在使用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))));
    }
}  

我需要在上面给出的错误之前拦截崩溃崩溃应用程序。我们在Haxe中是否有任何支持,例如Java提供Thread.UncaughtExceptionHandler

exception error-handling haxe hxcpp
1个回答
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,则只能捕获空指针异常。

© www.soinside.com 2019 - 2024. All rights reserved.