我需要计算字符串的 MD5 哈希值并通过谷歌搜索找到 this .
我想要一个可重用的实用程序类,负责对字符串进行哈希处理,我将像这样使用它:AeSimpleMD5.MD5(myString);
。
此调用意味着每次我想要对字符串进行哈希处理时,我都必须检查 NoSuchAlgorithmException
和 UnsupportedEncodingException
;我对此有几个问题,我将复制可能引发异常的行:
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/