java - 散列字符串和相关异常

标签 java exception md5

我需要计算字符串的 MD5 哈希值并通过谷歌搜索找到 this .

我想要一个可重用的实用程序类,负责对字符串进行哈希处理,我将像这样使用它:AeSimpleMD5.MD5(myString);

此调用意味着每次我想要对字符串进行哈希处理时,我都必须检查 NoSuchAlgorithmExceptionUnsupportedEncodingException ;我对此有几个问题,我将复制可能引发异常的行:

    MessageDigest md = MessageDigest.getInstance("MD5");
    md.update(str.getBytes("iso-8859-1"), 0, str.length());

1) 会抛出异常吗? MD5算法或“iso-8859-1”编码怎么可能丢失?

2)我想知道如果我碰巧捕获了这些异常之一我该怎么办;答案是:可能什么也没有!因此,将异常包装到新的运行时异常(可能类似于 MD5HashingException)中不是更有意义吗?

最佳答案

这里的典型模式是:

try {
   /* do whatever */
} catch (ExceptionIDontBelieveIn eidbi) [
   throw new RuntimeException(eidbi); // or subclass thereof
}

这就是你表达的方式:“在我的情况下,我相信这种异常不会发生”。如果您确定代码永远不会在缺少 MD5 或 ISO-8859-1 的外来引导类路径中运行,这就是解决方案。

关于java - 散列字符串和相关异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12340740/

相关文章:

java - 如果捕获空指针异常不是一个好习惯,那么捕获异常是一个好习惯吗?

android - MD5 是否保证可用于 Android 中的 MessageDigest?

python - 比较python中两个文件的md5哈希值

ruby - 当你在 ruby​​ 中没有指定异常类时,你会捕获哪些异常?

java - 意外标记 : part near line 1, 第 155 列 [选择新

java - JdbcTemplate 抛出异常

java - 我如何等待 Java 应用程序中的 Elastic MapReduce 作业流完成?

Java:异常处理 - 我的 catch() 有问题

java - 哈希md5结果不变

java - java中如何将二进制文件转换为对象