在静态初始化块中使用 try catch

Bat*_*tty 5 java

我不会抛出任何异常static

static 
{
    try
    {
        int number = Integer.parseInt("2a");
    }
    catch (NumberFormatException e)
    {
        //log
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么在这种情况下使用 try 和 catch 被认为是错误的?

bst*_*r55 6

静态块不得抛出已检查的异常,但仍允许抛出未检查/运行时异常。

也就是说,在静态块中使用 try catch 并没有本质上的错误。如上所述,如果代码抛出已检查异常,这实际上是一个要求。