Я использую библиотеку отчетов об авариях в своем проекте Android. После активации он реагирует на каждое исключенное исключение и создает отчет непосредственно перед отключением приложения.Бросьте исключение без сбоев приложения
Пока все хорошо, но я хочу добавить еще «контроль» к этой вещи и создать отчеты для исключений. Моя идея заключается в том, чтобы определить «фальшивый» исключение так:
public final class NonFatalError extends RuntimeException {
private static final long serialVersionUID = -6259026017799110412L;
public NonFatalError(String msg) {
super(msg);
}
}
Так что, когда я хочу, чтобы отправить сообщение об ошибке не критично, и создать отчет, я сделаю это:
throw new NonFatalError("Warning! A strange thing happened. I report this to the server but I let you continue the job...");
Если вызвано из основного потока, это, очевидно, приводит к сбою приложения. Итак, я попытался выбросить его на фоне нитки!
new Thread(new Runnable() {
@Override
public void run() {
throw new NotFatalError("Warning! A strange thing happened. I report this to the server but I let you continue the job...");
}
}).start();
Отличная идея? Нет. В любом случае приложение вылетает (но фальшивый отчет о сбое отправляется, как ожидалось). Есть ли другой способ добиться того, чего я хочу?
// Есть ли другой способ достичь того, что я хочу? // Нет, вам нужно поймать исключение, чтобы остановить его сбой приложения. – samthebest