抛出异常,java表示没有处理

时间:2015-12-29 17:55:01

标签: java passwords salt throws

当我尝试在我的Main类中运行此代码时,我的IDE会弹出并说我没有处理我在方法开头抛出的异常。

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;

}

1 个答案:

答案 0 :(得分:1)

如果此方法抛出异常,则每个使用它的方法都需要捕获该异常,或者抛出异常。

如果使用generateSalt的方法没有执行其中一个,那么编译器会抱怨未处理的异常。

解决方案很简单,在调用方法上要么将throws NoSuchAlgorithmException添加到签名中,要么执行此操作:

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