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

4

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

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

6
为什么不直接发送完整的堆栈跟踪?
send(e.getStackTrace())

这里不仅包含异常类型,还包括发生异常的位置(文件、类、行)。 此外,您也可以简单地使用toString()方法。

有关更多信息,请参见Java文档


1
链接已过期。 - Hassan Jamil

4

为了避免自己编写错误日志和报告机制,我强烈建议您使用ACRA。它是免费的、开源的,并支持将错误日志发送到电子邮件。我已经使用它相当长的时间了,效果非常好。

这将为您提供各种信息,例如手机型号、分辨率、可用内存,以及错误的完整堆栈跟踪。这绝对是将高质量错误报告集成到Android应用程序中最简单的方法。

最棒的部分是只需要大约5分钟的设置和集成即可。


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

这会产生难以阅读的代码,我想说如果你要处理一百个异常的话,祝你好运 :P - poitroae
是的,我同意。这不是最好的框架,但如果我们遵循要求,它就能够满足需求。 - Azodious

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接