捕获StreamCorruptedException

时间:2012-08-15 19:51:27

标签: java exception exception-handling stream

我有一些调用第三方专有库的java代码:

public String decrypt(String inputString) {
    return ThirdPartyDecrypter.decrypt(inputString);
}

以上代码可编译并适用于99%的用户。但是,如果我故意提交错误的输入字符串,则上述方法会抛出java.io.StreamCorruptedException。

我想捕获该异常,并在错误情况下执行其他操作:

public String decrypt(String inputString) {
    try {
        return ThirdPartyDecrypter.decrypt(inputString);
    } catch (StreamCorruptedExcepton streamException) {
        System.out.println("case streamException");
        streamException.printStackTrace(); // does not execute
            throw MyNewException(streamException);
    } catch (Exception e) {
        System.out.println("case e");
        e.printStackTrace(); 
            throw MyNewException(streamException);
    }
}

当我运行上面的代码时,没有捕获StreamCorruptedException,它仍然被抛出而不是MyNewException。

我需要做些什么才能捕获StreamCorruptedException?我还读过StreamCorruptedException应该是一个经过检查的异常。那么第三方库如何抛出它(因为他们没有在API中声明任何抛出)?

0 个答案:

没有答案