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



我正在为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 时,才能捕获空指针异常。

相关内容

  • 没有找到相关文章

最新更新