Java 为什么在这种情况下引发UnrecoverableKeyException异常?
我有一个访问密钥库的代码。当我的密码错误时,我会得到类型为Java 为什么在这种情况下引发UnrecoverableKeyException异常?,java,Java,我有一个访问密钥库的代码。当我的密码错误时,我会得到类型为UnrecoverableKeyException的异常。因此,我将代码编写为: try { InputStream f = new FileInputStream("<location to file>") keyStore.load( f , passwords ); } catch(UnrecoverableKeyException e){
UnrecoverableKeyException
的异常。因此,我将代码编写为:
try {
InputStream f = new FileInputStream("<location to file>")
keyStore.load( f , passwords );
} catch(UnrecoverableKeyException e){
log.error("")
}
捕获异常并打印类类型为类java.io.IOException
。但是,为什么首先我会收到一条消息,异常是属于不可恢复的KeyException
到底发生了什么
提前感谢。Javadoc声明它可以抛出IOException
,并且:
如果错误是由错误的密码引起的,IOException的原因应该是不可恢复的KeyException
这意味着您捕获的实际上是一个
IOException
,但是e.getCause()
将是一个不可恢复的keyexception
。打印堆栈跟踪时,您会看到链中的所有原因,这可能会让您认为这是一个不可恢复的KeyException
您确定有什么东西没有打开异常吗?能否显示来自UnrecoverableKeyException的堆栈跟踪?
catch(Exception e)
{
log.error(e.getClass(),e)
}