我是java和android的初学者。我在我的项目中使用异步任务从Web服务获取一些数据,在异常处理中遇到一些问题。我引用了这个SO question,我遵循CommonsWare在link中建议的模式。
我成功捕获异常并将其存储在异常变量中。我需要将捕获的异常与onPostExecute
方法中的一些标准异常进行比较,我还希望根据它显示自定义错误消息。如何将此捕获的异常与标准异常进行比较?任何帮助,将不胜感激。谢谢。
答案 0 :(得分:19)
使用Instanceof
java关键字。如果对象实例的类型正确,则返回true。
if(e instanceof SomeStandardException)
注意: instanceof
对于确切类型和所有父类型都返回true。因此,如果您在级联if-elseif
中使用它,则在顶部放置更多具体类型,在底部放置更多通用(父)类型。
注意2:按照链接中的建议捕获泛型Exception
是一种不好的做法 - 您应该只捕获要处理的异常。所以不是保存exceptin,而是应该通过try-catch-catch
捕获一个具体的异常,保存适当的标志(可能是布尔字段),然后对此标志进行操作。