【问题标题】:break out of try catch and if else statements in Java打破 Java 中的 try catch 和 if else 语句
【发布时间】:2023-04-04 15:37:01
【问题描述】:

我有如下代码块。在 elseif 或 else 语句中抛出异常后,我需要停止,如果 try catch 进入 elseif 或 else 语句,则不返回最终的 return 语句。

【问题讨论】:

  • 不要捕获和抛出Exception(这最终会过于通用),而是对特定错误使用特定异常。创建一个新的异常类就像扩展ExceptionRuntimeException一样简单,并提供一个带有super的构造函数。
  • "在try catch之后不返回最后的return语句"那为什么你的return语句在catch块之后呢?
  • 这个问题不是很清楚。两个 else 子句都抛出异常,然后都将被 catch 块捕获,并抛出一个新的异常。代码中还有其他逻辑错误,但如果有任何一个 else 子句,return 语句似乎永远不会执行。
  • 因为如果我将返回值放在 if 语句@njzk2 中,它会引发错误“缺少返回语句”@njzk2
  • @crig 我删除了 throw in catch 块。现在我该如何解决这个问题?并且 P.S 如果返回到任何一个 else 语句中,我不希望执行返回,这就是我这样写它的原因

标签: java if-statement try-catch


【解决方案1】:

考虑使用包裹异常的 Try 对象,如https://dzone.com/articles/why-try-better-exception-handling-in-java-with-try 中所述。

【讨论】:

    【解决方案2】:

    将 return 语句移到 if 条件 then 中

    【讨论】:

    • 如果我这样做,它会显示错误“缺少返回语句”
    最近更新 更多