2015-12-29 54 views
-2

當我嘗試在我的主類中運行此代碼時,我的IDE彈出並說,我沒有處理我在我的方法開始時拋出的異常。方法拋出異常,說java不處理

public byte[] generateSalt() throws NoSuchAlgorithmException{ 

     // VERY important to use SecureRandom instead of just Random 
     SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); 

     // Generate a 8 byte (64 bit) salt as recommended by RSA PKCS5 
     byte[] salt = new byte[8]; 
     random.nextBytes(salt); 

     return salt; 

} 
+2

那麼,什麼是你的問題?如果你不知道如何處理這個異常,我建議你重新拋出它,就像你用這種方法一樣。 –

+0

你在哪裏調用'generateSalt'?你在那裏處理異常嗎?編譯器在哪裏抱怨? – luk2302

+0

你在哪裏調用這個方法,發佈該部分 – Ramanlfc

回答

1

如果此方法拋出異常,則使用它的每個方法都需要捕獲該異常,或者拋出異常。

如果使用generateSalt的方法沒有執行其中的一個,那麼編譯器會抱怨未處理的異常。

解決方法很簡單,在調用方法要麼添加throws NoSuchAlgorithmException到簽名,或做到這一點:

try { 
    generateSalt(); 
} catch (NoSuchAlgorithmException e) { 
    // do something with the exception 
}