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

Haxe uncaught global exception handler

我正在为 CPP 目标使用 Haxe 编写 UI 应用程序。我需要在应用程序崩溃之前拦截 haxe error/exceptions。
以下是导致应用程序崩溃的代码示例:

@: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?

您可以简单地将 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 时被捕获。