• 6.2 捕获的异常:不能忽视

    6.2 捕获的异常:不能忽视

    除了下面的例子,对捕获的异常不做响应是极少正确的。(典型的响应方式是打印日志,或者如果它被认为是不可能的,则把它当作一个AssertionError重新抛出。)

    如果它确实是不需要在catch块中做任何响应,需要做注释加以说明(如下面的例子)。

    1. try {
    2. int i = Integer.parseInt(response);
    3. return handleNumericResponse(i);
    4. } catch (NumberFormatException ok) {
    5. // it's not numeric; that's fine, just continue
    6. }
    7. return handleTextResponse(response);

    例外:在测试中,如果一个捕获的异常被命名为expected,则它可以被不加注释地忽略。下面是一种非常常见的情形,用以确保所测试的方法会抛出一个期望中的异常, 因此在这里就没有必要加注释。

    1. try {
    2. emptyStack.pop();
    3. fail();
    4. } catch (NoSuchElementException expected) {
    5. }