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

发布于 2024-12-01 19:44:30 字数 508 浏览 1 评论 0 原文

我是java和android的初学者。我在项目中使用异步任务从 Web 服务获取一些数据,在异常处理中遇到了一些问题。我提到了这个SO问题,并且我遵循CommonsWare在此链接。

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

I am a beginner in both java and android. I am using asynchronous task in my project to fetch some data from a web service, faced some problems in exception handling. I referred this SO question and I am following the pattern suggested by CommonsWare in this link.

I succeeded in catching the exceptions and storing it in an exception variable. I need to compare the caught exception against some standard exceptions in onPostExecute method also I would like to display custom error messages based on that. How can I compare this caught exception against standard exceptions? Any help would be appreciated. Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不吻晚风 2024-12-08 19:44:30

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

if(e instanceof SomeStandardException)

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

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

Use Instanceof java keyword. It returns true if object instance is of correct type.

if(e instanceof SomeStandardException)

Note: instanceof returns true for both exact type and all parent types. So if you use it in a cascading if-elseif then put more concrete types at the top and more generic (parent) types at the bottom.

Note2: catching generic Exception as proposed in the link is a bad practice - you should only catch exceptions that you want to handle. So instead of saving the exceptin, you should catch a concrete exception via try-catch-catch, save appropriate flag (boolean field maybe) and then act on this flag.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文