Java 从不抛出UnsupportedEncodingException

Java 从不抛出UnsupportedEncodingException,java,exception,Java,Exception,所以我尝试使用字符串中的getBytes,我读到,如果它遇到一个无法转换为真实数据的字符,它将抛出一个不受支持的CodingException。我添加了java.io来提供异常,但是当我将它放在try-catch语句中时,我得到, “UnsupportedEncodingException的捕获块不可访问。此异常从不从try语句体引发” 这是我的确切结构。myCharacterData是由外部程序提供的,它只是一个字符串,但该字符串很可能包含垃圾数据(因为我无法控制放入其中的内容) 我错了吗?不

所以我尝试使用字符串中的getBytes,我读到,如果它遇到一个无法转换为真实数据的字符,它将抛出一个不受支持的CodingException。我添加了java.io来提供异常,但是当我将它放在try-catch语句中时,我得到, “UnsupportedEncodingException的捕获块不可访问。此异常从不从try语句体引发”

这是我的确切结构。myCharacterData是由外部程序提供的,它只是一个字符串,但该字符串很可能包含垃圾数据(因为我无法控制放入其中的内容)


我错了吗?不能抛出该异常吗?这里使用的正确异常是什么?

您误解了
不支持的编码异常的起源

它由将字符集的名称作为字符串的方法引发。例如,抛出异常

抛出它的原因是JVM不知道名称所指的字符集。例如,如果调用
“”.getBytes(“flibbly-bibbly”)
,将(几乎肯定)引发异常,因为这不是已知字符集的名称

请注意,这与字符串的内容无关。不管是好是坏(我说是坏),Java在编码或解码字符到字节或从字节到字节时不会抛出异常


例如,
“您误解了
无支持编码异常的起源

它由将字符集的名称作为字符串的方法引发。例如,引发异常

引发该异常的原因是,如果JVM不知道该名称所指的字符集。例如,如果调用
“”.getBytes(“flibbly bibbly”)
,则会(几乎肯定)引发异常,因为这不是已知字符集的名称

请注意,这与字符串的内容无关。无论是好是坏(我说的是坏),Java在对字节中的字符进行编码或解码时都不会抛出异常


例如,
“您在哪里读到
getBytes()
可能引发该异常?官方规范没有这样说。这就是为什么编译器抱怨捕获了一个永远不会抛出的异常。如果将无效字符集的名称传递给getBytes方法,则会出现异常。啊,我一定是误读了。这就解释了。非常感谢。你能把它作为一个答案贴出来,这样我就可以把它标记为已回答吗?你在哪里读到
getBytes()
可能会抛出那个异常?官方规范没有这样说。这就是为什么编译器抱怨捕获了一个永远不会抛出的异常。如果将无效字符集的名称传递给getBytes方法,则会出现异常。啊,我一定是误读了。这就解释了。非常感谢。你能把它贴出来作为答案吗?这样我就可以把它标上答案了?
byte[] bytes = {0x40};
try {
    bytes = myCharacterData.getBytes();
} catch (UnsupportedEncodingException saveError) {};