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

如何在不引发Java异常的情况下摆脱try / catch块

殳凯捷
2023-03-14
问题内容

我需要一种从try / catch块的中间中断而又不会引发异常的方法。类似于中断并继续for循环的操作。这可能吗?

我对于抛出一个自定义异常(将其命名为“
BreakContinueException”)变得很奇怪,该异常在其catch处理程序中什么都不做。我敢肯定这很扭曲。

因此,我不知道任何直接的解决方案吗?


问题答案:

正确的方法可能是通过将try-catch块放在单独的方法中来分解该方法,并使用return语句:

public void someMethod() {
    try {
        ...
        if (condition)
            return;
        ...
    } catch (SomeException e) {
        ...
    }
}

如果代码包含很多局部变量,则您也可以考虑使用StephenCbreak所建议的带标记的块中的a

label: try {
    ...
    if (condition)
        break label;
    ...
} catch (SomeException e) {
    ...
}


 类似资料:
  • 问题内容: 在Java中,我们使用try catch块处理异常。我知道我可以像下面这样编写一个try catch块来捕获方法中抛出的任何异常。 但是Java中有什么方法可以让我在发生异常时获取一种称为的特定方法,而不是像上面的方法那样编写一个包罗万象的方法? 具体来说,当抛出异常(我的应用程序逻辑未处理)时,我想在Swing应用程序中显示一条用户友好的消息。 谢谢。 问题答案: 默认情况下,JVM

  • 我有一个实现以下接口的基类,上面声明的方法抛出基本异常类型。 有许多具体的类扩展了基类,我不想在所有这些类中添加块。有没有一种方法可以处理而不添加? 接口 基层 混凝土类示例(共30个)

  • 我正在尝试设置一个动态,从本地目录读取文件。因此,我创建了以下可参数化类: 参数化流在的帮助下注册,如下所示: 启动应用程序后,我得到以下警告: 如果我理解正确的话,负责创建集成bean(从而设置beanFactory)。但是为什么我会收到这个错误信息呢?

  • 我有一个使用JSoup连接和解析网站数据的程序。当网站在我给出的10秒超时后无法连接时,JSoup方法会抛出一个Uncheck edIOException。这可能包含一个IOException,例如“SSL Peer意外关闭”或“超时”,这是我过去处理过的IOExceptions。这很奇怪,因为它包含一个try catch: 我已经做了各种变通方法,比如在try-catch中包装该方法,使该方法抛

  • 我是spring boot的新手,我正在通过ControllerAdvisor向控制器添加自定义异常。在MyController.class中,我正在执行三个操作 null 下面的类是特定于未找到的异常的。 在application.properties中,我添加了以下三个条件 当我使用GET API http://localhost:8080/ticke访问我的服务器时,它应该抛出bad req

  • 问题内容: 可以在Swift中捕获异常吗?给出以下代码: 是否可以防止异常导致整个程序崩溃?也就是说,Objective-C中的Swift等效于什么: 问题答案: 它没有异常处理,并且在开发人员论坛中的讨论讨论了为什么会这样: 但请记住,可可和可可触控传统上并不打算让您捕获异常。他们打算让您不要将它们放在首位。普通错误应使用可选类型和inout NSError参数处理;您应该通过编写更好的代码来解