捕获所有模块异常以避免主应用程序崩溃



我正在Android上开发一个库模块(使用gradle和proguard),该模块将集成到其他应用程序中。

是否有解决方案捕获库抛出的所有异常,以便如果库在其他线程中有一些NPE或异常(如OMX异常),主应用程序不会崩溃。

你可以使用setDefaultUncaughtExceptionHandler(),但如果你得到未捕获的异常,那么你的应用程序的流程已经中断,恢复通常是非常困难/不可能的。也许捕获所有未捕获异常的唯一有用的情况是将其报告给开发人员,以便您可以确定并修复错误。但如果这是你的目标,那么我宁愿使用现有的解决方案,如critterism之类的

您可以在您的库项目中查找任何未捕获的异常

private Thread.UncaughtExceptionHandler _unCaughtExceptionHandler = new Thread.UncaughtExceptionHandler() {
    @Override
    public void uncaughtException(Thread thread, Throwable ex) {
       //Put a check if it is thrown by your liberary then deal with it.
    }
};
 Thread.setDefaultUncaughtExceptionHandler(_unCaughtExceptionHandler);

最新更新