我已将以下内容导入我的项目
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.io.*;
以下是告诉我“未处理的异常类型 NoSuchPaddingException”
Cipher c = Cipher.getInstance("AES");
我正在使用 JaveSE-1.6。
有什么想法会导致这种情况吗?
我已将以下内容导入我的项目
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import java.io.*;
以下是告诉我“未处理的异常类型 NoSuchPaddingException”
Cipher c = Cipher.getInstance("AES");
我正在使用 JaveSE-1.6。
有什么想法会导致这种情况吗?
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
after 方法的任何内容都需要处理。一般来说,他们让你这样做是有充分理由的。在这种情况下,如果你不能得到正确的密码,你就不能加密任何东西。