有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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


共 (1) 个答案

  1. # 1 楼答案

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

    if(e instanceof SomeStandardException)
    

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

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