3

我正在 Eclipse 中开发一个使用加密的 Android 项目。该代码包含以下行:

Cipher en = Cipher.getInstance("AES/ECB/NOPADDING");

Eclipse 抱怨以下代码行:“未处理的异常类型 NoSuchAlgorithmException”和“未处理的异常类型 NoSuchPaddingException”。

我用包含那行代码的 Eclipse 外部的文本编辑器编写了一个简单的加密/解密 java 程序。该程序正确编译并从命令行运行,没有抛出任何异常,并且正确加密和解​​密。

这告诉我在机器上正确安装了一个提供程序,支持该算法和填充,但由于某种原因 Eclipse 没有看到或找不到一些必要的文件。我试过浏览各种目录并多次更改 Eclipse 的搜索路径,但都没有成功。有任何想法吗?

4

1 回答 1

3

如果您查看Cipher.getInstance 的文档,您会注意到它会引发您提到的异常。用 try/catch 块包围您的引用(如果您将鼠标悬停在突出显示的错误上,eclipse 应该提供此作为解决方案)。

例子:

try {
    Cipher en = Cipher.getInstance("AES/ECB/NOPADDING");
    //use the cipher
    //...
} catch (NoSuchAlgorithmException e) {
    //handle exception
    // ex: e.printStackTrace(); System.exit(1);
} catch (NoSuchPaddingException e) {
    //handle exception
} finally {
    //optional, use this block if necessary
}

Java 要求您处理已检查的异常,因此您应该确保在代码中正确使用 try/catch 块。

异常基础

于 2012-10-24T20:55:08.530 回答