我想在我的应用程序中捕获所有类型的异常,并通过电子邮件发送报告。为此,我使用全局 try catch 块。但现在我需要按类型识别异常。我该如何做呢?
try{
...
}
catch (Exception e){
//Here I need to recognize exception by type
send(Error);
}
send(e.getStackTrace())
这里不仅包含异常类型,还包括发生异常的位置(文件、类、行)。
此外,您也可以简单地使用toString()
方法。
有关更多信息,请参见Java文档。
为了避免自己编写错误日志和报告机制,我强烈建议您使用ACRA。它是免费的、开源的,并支持将错误日志发送到电子邮件。我已经使用它相当长的时间了,效果非常好。
这将为您提供各种信息,例如手机型号、分辨率、可用内存,以及错误的完整堆栈跟踪。这绝对是将高质量错误报告集成到Android应用程序中最简单的方法。
最棒的部分是只需要大约5分钟的设置和集成即可。
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
{
//
}