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
。一般來說,他們讓你這樣做是有原因的。在這種情況下,如果您無法獲得正確的密碼,則無法加密任何內容。
你需要拋出異常。 – Smit
既然你沒有指定填充,你會得到默認的填充,在這種情況下,這個例外應該是不可能的。對我來說,這表明你真的搞砸了加密配置的一部分,或者你的類路徑是錯誤的,或者你已經在某處安裝了一個bug提供程序。運行此代碼的Java 1.6不會拋出該異常。 –