捕获块中的额外分号

时间:2013-08-22 20:24:37

标签: java exception-handling coding-style

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

catch (SpecificException e) {
;
}

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

catch (SpecificException e) {}

由于这两者之间没有区别,为什么人们会使用额外的分号?

5 个答案:

答案 0 :(得分:2)

;是一个空的陈述,所以无论你要添加多少个都无关紧要。

答案 1 :(得分:2)

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

话虽如此,应该避免catch块的两种风格。你不应该有一个空的catch块。这弊大于利。你应该至少把你的阻止块作为:

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

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

答案 2 :(得分:0)

这是个人偏好,作者可能会使用它,因此空的捕获块更明显。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

这可能是个人偏好,就好像你检查了 Calendar.getInstance()方法的java文档一样,你会发现它们使用相同的编码风格偏好。

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) {
            ;
        }
    }