捕获所有异常并通过电子邮件发送

时间:2012-02-05 11:33:53

标签: android exception

在我的应用程序中,我希望捕获所有类型的异常并通过电子邮件发送报告。为此,我正在使用全局try catch块。但现在我需要按类型识别异常。我该怎么办?

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

3 个答案:

答案 0 :(得分:6)

为什么你不简单地发送整个堆栈跟踪?

send(e.getStackTrace())

它不仅包含Exception类型,还包含它发生的位置(文件,类,行)。 此外,您还可以使用toString()方法。

有关详细信息,请参阅the java doc

答案 1 :(得分:4)

我强烈建议您使用ACRA免费的开放源码,并支持将错误日志发送到电子邮件,而不是滚动您自己的错误记录和报告机制。我已经用了很长时间了,非常好。

这将为您提供各种信息,如手机制作,型号,分辨率,可用内存,以及错误的完整堆栈跟踪。它是迄今为止在Android应用中获得质量错误报告的最简单方法。

最好的部分是需要大约5分钟才能完成设置和集成。

答案 2 :(得分:1)

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
{
    //
}