2012-10-18 3 views
17

Ich verwende ACRA (Application Crash Report für Android), um Daten zu senden, wenn unbehandelte Ausnahmen auftreten.Android ACRA mit behandelten Ausnahmen

Methoden wie openFileOutput() erfordert, dass ich versuche, iOExceptions zu fangen. Da sich die Ausnahme in einem try catch-Block befindet, wird ARCA nicht ausgelöst. Trotzdem möchte ich den StackTrace erhalten und sehen. Gibt es Möglichkeiten, dies zu erreichen?

Antwort

27

Wenn die IOException Handhabung usw. nicht wirklich Sinn machen (das heißt, es gibt wirklich nichts, was man dagegen tun kann), wickeln Sie es in einem RuntimeException und es werfen. ACRA wird dies erfassen und melden. Wenn Sie nicht über die App zum Absturz bringen wollen, fangen und damit umgeht, dann handleException() verwenden, um einen Bericht zu senden manuell:

ACRA.getErrorReporter().handleException(caughtException); 

Mehr Details here

+0

Gibt es eine Option für verhindern ACRA von doppelter Ausnahme zu senden? (Doppelte Ausnahme bedeutet eine doppelte Ausnahme von einem bestimmten Gerät) –

+2

Deduplizieren Sie Ausnahmen auf dem Server. Sie können dies vernünftigerweise nicht auf der Client-Seite tun, ohne eine Datenbank mit * allen * Ausnahmen zu verwalten, die bisher gesendet wurden. –