【问题标题】:Extra semicolon in catch blockcatch 块中的额外分号
【发布时间】:2013-08-22 20:24:36
【问题描述】:

我正在审查 GitHub 作者的各种编码风格以学习和获得灵感,这让我感到困惑。一位作者一直在本地处理的 catch 块中使用额外的分号。

catch (SpecificException e) {
;
}

当想在本地忽略异常时,我会写

catch (SpecificException e) {}

既然这两者之间没有区别,那为什么要使用额外的分号呢?

【问题讨论】:

  • 什么都没有改变..
  • 不知道作者或他们的意图我只能冒险猜测,但他们将其用作“此页面故意留白”的通知。
  • 一般来说,你永远不应该有一个完全空的 catch 块——至少应该有一个 println 或类似的东西。但是可以在任何“声明”合法的地方放置一个裸露的;
  • 将示例更改为SpecificException,因为有人指出应向上传播通用Exception。然而,这不是问题的重点。

标签: java exception-handling coding-style


【解决方案1】:

; 是一个空语句,所以你要添加多少并不重要。

【讨论】:

    【解决方案2】:

    无需添加额外的; 来表示空的catch 块。您使用的方式应该是首选,并且更清晰。额外的; 简直太荒谬了。

    话虽如此,catch 块的两种样式都应该避免。你不应该有一个空的 catch 块。这弊大于利。您至少应该将 catch 块设置为:

    catch (Exception e) {
        e.printStackTrace();
    }
    

    除此之外,你应该尽量不要有一个 catch 块来捕获各种Exceptions。您应该为特定类型的异常创建 catch 块,以便以不同的方式处理它们。

    【讨论】:

      【解决方案3】:

      这是个人喜好,作者可能会使用它,这样一个空的catch块会更明显。

      【讨论】:

      • 后来我发现确实是这样,他有一个脚本是故意的。
      【解决方案4】:

      首先,为什么有一个 catch 块对它什么都不做。话虽如此,如果我出于某种原因有一个空的 catch 块,我会以catch (Exception) {} 这只是改变了它仍然可以识别空的 catch 块,但不会给我警告说 'e' 已初始化但从未被引用。

      【讨论】:

        【解决方案5】:

        这可能是个人偏好,就像您检查 java 文档中的 Calendar.getInstance() 方法一样,您会注意到他们使用相同的编码风格偏好。

        public static Calendar getInstance(TimeZone arg, Locale arg0) {
            return createCalendar(arg, arg0);
        }
        
        private static Calendar createCalendar(TimeZone arg, Locale arg0) {
            CalendarProvider arg1 = LocaleProviderAdapter.getAdapter(CalendarProvider.class, arg0)
                    .getCalendarProvider();
            if (arg1 != null) {
                try {
                    return arg1.getInstance(arg, arg0);
                } catch (IllegalArgumentException arg6) {
                    ;
                }
            }
        

        【讨论】:

          猜你喜欢
          • 2021-10-06
          • 2016-09-07
          • 1970-01-01
          • 2015-04-05
          • 1970-01-01
          • 1970-01-01
          • 2021-06-25
          • 1970-01-01
          • 2019-02-13
          相关资源
          最近更新 更多