建议的处理方式是什么不支持的编码异常 http://docs.oracle.com/javase/6/docs/api/java/io/UnsupportedEncodingException.html在库方法中调用 String.getBytes("UTF-8") 时?
如果我在读书http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html正确的是,UTF-8编码应该always可用,这让我相信没有理由将此异常传递给库的使用者(即添加一个throws
方法签名的子句)。似乎任何导致 UTF-8 编码设施不可用的故障模式都将是灾难性的,导致我编写了这个处理程序:
try
{
....
return "blah".getBytes("UTF-8");
}
catch (UnsupportedEncodingException e)
{
// we're assuming UTF-8 encoding is always available.
// see
// http://docs.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html
e.printStackTrace();
return null; //prevent compile-time "method must return a result" errors
}
是否存在此代码片段无法解决的故障模式?
你知道我做什么吗?
return "blah".getBytes( Charset.forName( "UTF-8" ) );
这个不会抛出检查异常。
Update:从 Java 1.7 开始,我们有标准字符集 https://docs.oracle.com/javase/7/docs/api/java/nio/charset/StandardCharsets.html.
return "blah".getBytes( StandardCharsets.UTF_8 );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)