除了下面的例子,對(duì)捕獲的異常不做響應(yīng)是極少正確的。(典型的響應(yīng)方式是打印日志,或者如果它被認(rèn)為是不可能的,則把它當(dāng)作一個(gè)AssertionError
重新拋出。)
如果它確實(shí)是不需要在catch塊中做任何響應(yīng),需要做注釋加以說(shuō)明(如下面的例子)。
try {
int i = Integer.parseInt(response);
return handleNumericResponse(i);
} catch (NumberFormatException ok) {
// it's not numeric; that's fine, just continue
}
return handleTextResponse(response);
例外:在測(cè)試中,如果一個(gè)捕獲的異常被命名為expected
,則它可以被不加注釋地忽略。下面是一種非常常見(jiàn)的情形,用以確保所測(cè)試的方法會(huì)拋出一個(gè)期望中的異常, 因此在這里就沒(méi)有必要加注釋。
try {
emptyStack.pop();
fail();
} catch (NoSuchElementException expected) {
}