Java catch块中的额外分号

Java catch块中的额外分号,java,exception-handling,coding-style,Java,Exception Handling,Coding Style,我正在回顾GitHub作者的各种编码风格,以学习并获得灵感,这一点让我感到困惑。一个作者在本地处理的catch块中始终使用额外的分号 catch (SpecificException e) { ; } 如果想在本地忽略异常,我只需编写 catch (SpecificException e) {} 既然这两者之间没有区别,那么为什么要使用额外的分号呢是一个空语句,因此不管您要添加多少语句。无需添加额外的表示空的捕捉块。您使用的方式应该是首选的,而且更清晰。额外的简直是荒谬可笑 话虽如此,应避免

我正在回顾GitHub作者的各种编码风格,以学习并获得灵感,这一点让我感到困惑。一个作者在本地处理的catch块中始终使用额外的分号

catch (SpecificException e) {
;
}
如果想在本地忽略异常,我只需编写

catch (SpecificException e) {}

既然这两者之间没有区别,那么为什么要使用额外的分号呢是一个空语句,因此不管您要添加多少语句。

无需添加额外的
表示空的捕捉块。您使用的方式应该是首选的,而且更清晰。额外的
简直是荒谬可笑

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

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

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

这是个人偏好,作者可能会使用它,以便空的catch块更引人注目。

首先,为什么让catch块与之无关。也就是说,如果出于任何原因,我有一个空的catch块,那么我就按照
catch(Exception){}

这只是为了使它仍然能够识别空的catch块,但不会警告我“e”已初始化但从未被引用。

这可能是个人偏好,就像您检查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) {
            ;
        }
    }

不知道作者或他们的意图,我只能冒险猜测一下,但他们会把它当作“本页故意留白”的通知。一般来说,你不应该有一个完全空的catch块——至少应该有println或类似的东西。但是一个赤裸裸的
可以放在“声明”合法的任何地方。将示例更改为
SpecificException
,因为有人指出应向上传播通用
异常。然而这不是问题的重点。后来我发现事实确实如此,他有一个剧本故意在这个剧本中使用兴奋剂。