我已将以下内容导入我的项目
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.io.*;
以下是告诉我“未处理的异常类型NoSuchPaddingException”
Cipher c = Cipher.getInstance("AES");
我正在使用JaveSE-1.6。
任何想法会导致什么?
答案 0 :(得分:5)
Cipher.getInstance(...)
抛出两种异常,并要求你处理它们。
如果您希望在其他地方处理异常,可以使用包含Cipher c = Cipher.getInstance("AES");
的方法重新抛出异常:
public void foo(){ throws Exception
...
}
或者更好的是,将方法包含在try-catch块中:
try{
Cipher c = Cipher.getInstance("AES");
}
catch(Exception e){
//do something about it
}
您也可以获得更高级的效果:
try{
Cipher c = Cipher.getInstance("AES");
}
catch(NoSuchAlgorithmException e){
//handle the case of having no matching algorithm
}
catch(NoSuchPaddingException e){
//handle the case of a padding problem
}
某些Java方法会抛出异常,其中一些需要您处理异常。在方法需要处理之后,Java API文档中的任何内容都带有Throws
。一般来说,他们有很好的理由让你这样做。在这种情况下,如果您无法获得正确的密码,则无法对任何内容进行加密。