这两天看到一个有意思的接口 Thread.UncaughtExceptionHandler,能检测出项目中未捕获的崩溃异常,结合钉钉机器人就能够实时上报异常,即时处理。
1、首先,在application中设置捕获异常处理程序Thread.setDefaultUncaughtExceptionHandler,
这里偷懒就直接由application继承。
2、在 uncaughtException 处理异常,未防止程序崩溃无法日志上传失败,通过service处理。
3、钉钉机器人接入 自定义机器人接入 - 钉钉开放平台 (dingtalk.com)
下面是具体代码:
public class MyApplication extends Application implements Thread.UncaughtExceptionHandler {
@Override
public void onCreate() {
super.onCreate();
Thread.setDefaultUncaughtExceptionHandler(this::uncaughtException);
}
@Override
public void uncaughtException(@NonNull Thread t, @NonNull Throwable e) {
StackTraceElement[] elements = e.getStackTrace();
StringBuilder reason =