Поймай все исключения и отправь их по электронной почте - PullRequest
3 голосов
/ 05 февраля 2012

В моем приложении я хочу ловить все типы исключений и отправлять отчеты по электронной почтеДля этого я использую глобальный блок try catch.Но теперь мне нужно распознать исключение по типу.Как я могу это сделать?

try{
...
}
catch (Exception e){
//Here I need to recognize exception by type
send(Error);
}

Ответы [ 3 ]

6 голосов
/ 05 февраля 2012

Почему вы просто не отправляете всю трассировку стека?

send(e.getStackTrace())

Она содержит не только тип исключения, но и место (файл, класс, строка), где это произошло.Кроме того, вы также можете просто использовать метод toString().

См. документ Java для получения дополнительной информации

4 голосов
/ 05 февраля 2012

Вместо того, чтобы вести собственный журнал ошибок и сообщать о механизме, я настоятельно рекомендую использовать ACRA . Он бесплатный, с открытым исходным кодом и поддерживает отправку журналов ошибок по электронной почте. Я использовал его в течение достаточно долгого времени, и это очень хорошо.

Это даст вам всевозможную информацию, такую ​​как марка телефона, модель, разрешение, свободная память, а также полный стек ошибок. На сегодняшний день это самый простой способ получать качественные отчеты об ошибках в приложении для Android.

Самое приятное, что на настройку и интеграцию уходит всего около 5 минут.

1 голос
/ 05 февраля 2012
e.getClass() // will give you Class object

e.getClass().getName() // will give you class name

Однако, если вы уже знаете имена классов, вы можете использовать

if(e instanceof A)
{
    // some processing
}
else if(e instanceof B)
{
    //some processing
}
else
{
    //
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...