如何将捕获的异常与异步任务android中的标准异常进行比较?

时间:2011-08-27 07:16:06

标签: java android exception-handling android-asynctask

我是java和android的初学者。我在我的项目中使用异步任务从Web服务获取一些数据,在异常处理中遇到一些问题。我引用了这个SO question,我遵循CommonsWare在link中建议的模式。

我成功捕获异常并将其存储在异常变量中。我需要将捕获的异常与onPostExecute方法中的一些标准异常进行比较,我还希望根据它显示自定义错误消息。如何将此捕获的异常与标准异常进行比较?任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:19)

使用Instanceof java关键字。如果对象实例的类型正确,则返回true。

if(e instanceof SomeStandardException)

注意: instanceof对于确切类型和所有父类型都返回true。因此,如果您在级联if-elseif中使用它,则在顶部放置更多具体类型,在底部放置更多通用(父)类型。

注意2:按照链接中的建议捕获泛型Exception是一种不好的做法 - 您应该只捕获要处理的异常。所以不是保存exceptin,而是应该通过try-catch-catch捕获一个具体的异常,保存适当的标志(可能是布尔字段),然后对此标志进行操作。