java 表示未处理的方法抛出异常

Method throws exception that java says isn't handled

当我尝试 运行 我的 Main class 中的这段代码时,我的 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;

}

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

如果使用 generateSalt 的方法没有执行两者之一,那么编译器将抱怨未处理的异常。

解决方法很简单,在调用方法上要么在签名中添加throws NoSuchAlgorithmException,要么这样做:

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