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

异常处理尝试catch内部捕获

房学文
2023-03-14
问题内容

最近,我遇到了一位程序员的代码,其中他在catch中有一条try-catch语句!

请原谅我无法粘贴实际代码,但是他所做的与以下内容类似:

try
{
 //ABC Operation
}
catch (ArgumentException ae)
{
   try
   {
      //XYZ Operation
   }
   catch (IndexOutOfRangeException ioe)
   {
      //Something
   }
}

我个人认为这是我见过的最差的代码!以1到10的比例,您认为我应该多久才能动一下脑子,还是我反应过度?

编辑:他实际上在抓捕中所做的事情,他正在执行一些操作,这些操作在初始尝试失败时可以/应该执行。我的问题是拥有干净的代码和可维护性。将异常从第一个catch委派到其他函数或调用函数可以,但是添加更多可能会或可能不会在第一个catch中抛出异常的代码,我觉得不好。我尝试避免使用多个堆叠的“
if-loop”语句,但我发现这同样不好。


问题答案:

为什么这么糟?在概念上与以下内容没有什么不同:

void TrySomething() {
   try {


   } catch (ArgumentException) {
        HandleTrySomethingFailure();
   }
}

void HandleTrySomethingFailure() {
    try {

    } catch (IndexOutOfRangeException) {

    }
}

在您去那里之前,请给他一个大脑(尝试顶叶,这特别令人反感),您对他说什么呢?您将如何回答谚语“为什么”?

更具有讽刺意味的是,当抖动内联该代码时,它将看起来完全像您的示例。

-Oisin



 类似资料:
  • 请求(正文)

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

  • 本文向大家介绍C#嵌套异常并尝试catch块。,包括了C#嵌套异常并尝试catch块。的使用技巧和注意事项,需要的朋友参考一下 示例 一个能够在另一个try catch内部嵌套一个异常/块。 这样一来,您可以管理小的代码块,这些代码块可以在不破坏整个机制的情况下正常工作。 注意:抛出父catch块时,避免吞咽异常

  • 我对CompletableFuture是个新手,我想调用一个可以引发异常的方法MetadataLoginutil::Login。然而,下面的代码没有编译,尽管我已经‘异常’编写。它说我必须在try&catch中包装metadataloginutil::login'。 请指教。前面谢谢!

  • 问题内容: 关于使用/的最佳实践,我有一个非常基本的问题。我有一个像这样的简单函数(DAO) 并在Web服务中使用DAO功能: OR最好在DAO函数中使用/,如下所示: 问题答案: 没有完美的规则。 如果需要尽早但尽可能晚地捕获异常,通常代码会更清晰,更简单。 您应该考虑在发生这种情况时谁必须采取行动,这决定了您是在方法(addVehicle)内进行操作还是调用方必须执行该操作。 例如: 在此示例

  • 有可能在SWIFT中捕捉异常吗?给定以下代码: 有可能防止异常使整个程序崩溃吗?也就是说,在Objective-C中,与以下内容相对应的Swift等价是什么: