-2

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

catch (SpecificException e) {
;
}

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

catch (SpecificException e) {}

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

4

5 回答 5

2

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

于 2013-08-22T20:26:08.670 回答
2

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

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

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

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

于 2013-08-22T20:26:25.820 回答
0

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

于 2013-08-22T20:27:08.157 回答
0

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

于 2013-08-22T20:31:12.207 回答
0

这可能是个人偏好,就像您检查 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) {
            ;
        }
    }
于 2017-05-03T10:04:15.080 回答