2012-10-18 15 views
17

Używam ACRA (Raport o awariach aplikacji dla systemu Android) do wysyłania danych po wystąpieniu nieobsługiwanych wyjątków.Android ACRA z obsługiwanymi wyjątkami

Metody takie jak openFileOutput() wymagają, aby spróbować złapać iOExceptions. Ponieważ wyjątek znajduje się w bloku catch catch, ARCA nie jest wyzwalany. Jednak nadal chciałbym otrzymać i zobaczyć stacktrace. Czy są jakieś sposoby, aby to osiągnąć?

Odpowiedz

27

Jeśli obsługa IOException itd. Nie ma większego sensu (tzn. Naprawdę nie można nic z tym zrobić), zawiń ją w RuntimeException i wyrzuć. ACRA złapie to i zgłosi to. Jeśli nie chcesz, aby rozbić aplikację, złapać i obsługiwać go, a następnie użyj handleException() wysłać raport ręcznie:

ACRA.getErrorReporter().handleException(caughtException); 

Więcej szczegółów here

+0

Czy istnieje opcja dla zapobiec Acra wysyłać duplikaty wyjątek? (Zduplikowany wyjątek oznacza duplikat wyjątku od określonego urządzenia) –

+2

Deduplikowane wyjątki na serwerze. Nie można tego racjonalnie robić po stronie klienta, bez utrzymywania bazy danych * wszystkich * wyjątków wysłanych do tej pory. –

Powiązane problemy