当前位置: 首页 > 面试题库 >

防止异常与捕获Java中的异常

云建木
2023-03-14
问题内容

我想知道其他SOer在实践中如何倾向于处理和/或防止异常。

您在什么情况下可以防止例外情况,以及如何防止例外情况?在什么情况下您会捕获异常?

通常,我通常会说“ NullPointerExceptions”(和其他类似的事件) if(foo!=null) {...}

我发现在大多数情况下,这比使用try-catch块所涉及的所有事情要小。

当潜在异常更复杂或数量更多时,我使用try-catch块。


问题答案:

我认为,仅当引用为null(例如再次)实际上表示 有效程序状态 时,才防止NullPointerException(例如)。如果没有,你应该
不会 阻止它的发生,因为在这种情况下,你 程序难改。

特别是在Java中,某些源自RuntimeException的异常(例如IllegalArgumentException)确实是在发出编程错误的信号,如果程序正确,则不会发生这种情况。我尝试遵循此。如果我正在编写一个对其参数施加限制的方法,则我将尽力避免引发异常。我会积极投掷一个。



 类似资料:
  • 本节介绍如何使用三个异常处理程序组件(try、catch 和 finally)来编写异常处理程序。 然后,介绍了 Java SE 7中引入的 try-with-resources 语句。 try-with-resources 语句特别适合于使用Closeable的资源(例如流)的情况。 本节的最后一部分将通过一个示例来分析在各种情况下发生的情况。 以下示例定义并实现了一个名为ListOfNumbe

  • 问题内容: 为什么Java中的某些异常未被捕获?这是代码由于没有处理的异常而完全失败。(Java版本1.4)。 我得到一个 但这有效 我懂了 我以为捕获异常会捕获所有异常?如何捕获Java中的所有异常? 问题答案: 因为某些异常不是源自-例如和。 基本上,类型层次结构是: 只能抛出派生类,因此,如果您抓住,那实际上就可以抓住一切。 ,以及任何异常,从获得 其他 比那些源自数作为 检查的异常 -他们

  • 我需要应用程序将错误写入位置。有没有我可以用Java异常处理做这件事?我已经在抛接IOerrors了,所以我不知道问题出在哪里……? 我正在从标准输入读取数据,并将其压缩并写入标准输出。 写入/dev/full不是引发异常...有没有关于如何引发异常的想法?

  • 为什么Java中的一些异常不被捕获?这是完全失败的代码,有一个未处理的异常。(Java版本1.4)。 我在线程“main”java中得到了一个 但这行得通 我在java中没有发现任何方法错误。lang.NoSuchMethodError: 我以为捕获异常会捕获所有异常?如何捕获java中的所有异常?

  • 问题内容: 如果我没记错的话,应该首先捕获Exception的子类。但是必须捕获任何RuntimeException和一个具体的经过检查的Exception,首先应该捕获它们吗? 这个命令正确吗?还是正确但错误的选择? 问题答案: 顺序是 先匹配的,然后执行 (正如JLS清楚地解释的)。 如果第一个catch匹配到异常,则执行,否则,将尝试下一个,并不断重复直到匹配或不匹配。 因此,在捕获异常时,

  • 问题内容: 我们在工作中使用JUnit 3,并且没有注释。我想在我们的代码中添加一个实用程序来包装它: 所以我尝试了这个: 但是,我认为Java无法在catch块中使用通用异常类型。 围绕Java限制,我该怎么做? 有没有办法检查变量的类型? 问题答案: 您可以传入Class对象并以编程方式进行检查。 我不确定您是否要重新扔球;重新抛出将同样导致测试失败/错误,但是从语义上讲我不会,因为它基本上意