这是一个糟糕的变体。一个例子:
socket.send(data); // sending data via socket. This may cause IOException
但也可以有另一个Exception
,例如NullPointerException
。如果您将捕获所有异常,则将更难发现错误:
Socket socket = null;
socket.send(data); // sending data via socket. This will cause NullPointerException
在此示例中,您会看到您将拥有一个NullPointerException
,但您会认为这是一个IOException
最好的变体是:
try {
Socket socket = null;
socket.send(data);
} catch(IOException ex) {
ex.printStackTrace();
} catch(NullPointerException ex) {
ex.printStackTrace();
}
// or in java 7 you can write catch(IOException | NullPointerException ex)
如果你想捕获一些异常,或者如果没有,就不要写第二个catch
块null
,你会发现你所有的错误,这是不必要的。
对不起我的英语不好