在 Java 中处理 RuntimeExceptions [关闭]
Posted
技术标签:
【中文标题】在 Java 中处理 RuntimeExceptions [关闭]【英文标题】:Handling RuntimeExceptions in Java [closed] 【发布时间】:2011-01-02 23:27:55 【问题描述】:谁能解释如何在 Java 中处理运行时异常?
【问题讨论】:
我认为不接受 SO 的人现在已经发现这些都是空洞的威胁。我们想要模组点数! 我从未在任何地方看到接受按钮? 答案旁边的大勾号/更正标记。 很遗憾,但我的印象是,对愚蠢问题的明显 30 秒回答通常比对更有趣问题的精心编写的答案给予更多的奖励积分。对于观看率高的问题,第一个回答即使与问题完全无关,通常也会获得很多奖励积分。 对不起,我找不到任何地方。 【参考方案1】:它与处理常规异常没有区别:
try
someMethodThatThrowsRuntimeException();
catch (RuntimeException ex)
// do something with the runtime exception
【讨论】:
可以捕获运行时异常..? 当然!Throwable
的所有子类都可以被捕获。
我没有看到这个问题的问题 - 我有一个 Runnable,我怀疑它会导致运行时错误,我不知道您可以将任何代码包装在 try/catch 中并添加RunTimeException 捕获。我用谷歌搜索了“android 处理运行时异常”,这是出现的第一个问题,这个答案提供了我需要的东西。当然,这正是 SO 应该如何工作的?【参考方案2】:
如果您知道可能抛出的异常类型,则可以显式捕获它。您也可以捕获Exception
,但这通常被认为是非常糟糕的做法,因为您会以同样的方式处理所有类型的异常。
通常,RuntimeException 的意义在于您无法优雅地处理它,并且它们不会在您的程序正常执行期间被抛出。
【讨论】:
除非自定义组件抛出 RuntimeException,因为它无法通过网络到达某个主机,这会导致您的 Android 应用程序崩溃。【参考方案3】:您只需捕获它们,就像任何其他异常一样。
try
somethingThrowingARuntimeException()
catch (RuntimeException re)
// Do something with it. At least log it.
【讨论】:
【参考方案4】:不确定您是否在 Java 中直接引用 RuntimeException
,所以我假设您在谈论运行时异常。
Java 中异常处理的基本思想是,您将期望可能引发异常的代码封装在特殊语句中,如下所示。
try
// Do something here
然后,您处理异常。
catch (Exception e)
// Do something to gracefully fail
如果无论是否引发异常都需要执行某些操作,请添加finally
。
finally
// Clean up operation
整体看起来像这样。
try
// Do something here
catch (AnotherException ex)
catch (Exception e) //Exception class should be at the end of catch hierarchy.
finally
【讨论】:
我们可以捕获运行时异常吗?怎么可能?在不知道运行时异常的情况下,我们如何以编程方式捕获它? 您可以使用catch (ExceptionType name)
捕获任何类型的异常。否则,您可以使用catch
捕获所有异常,或使用catch (Exception name)
捕获所有异常(并让您可以访问有关它们的信息。
@Ed:这是正确的。但是如果我在服务器上遇到错误(加载问题)。这是运行时异常。我们将如何以编程方式捕获此异常?有可能吗?
我不明白你的意思......你使用我给你的语法以编程方式捕获异常。以上是关于在 Java 中处理 RuntimeExceptions [关闭]的主要内容,如果未能解决你的问题,请参考以下文章