gpt4 book ai didi

android - 如何处理永远不会发生的检查异常(UnsupportedEncodingException)?

转载 作者:行者123 更新时间:2023-11-29 17:45:49 25 4
gpt4 key购买 nike

我正在尝试将字符串转换为 UTF-8 编码。但是编译失败,因为某些代码“抛出 UnsupportedEncodingException”。

String s = "1,2,3,4";
String smsext = new String(s.getBytes(),"UTF-8");

如何解决这个问题?

最佳答案

异常 UnsupportedEncodingException 由 String 构造函数抛出(不是由 Android Studio 抛出!!!)。这是一个已检查的异常,因此您的代码必须以某种方式处理它。

在这种特殊情况下:永远不会抛出异常,因为“UTF-8”是硬编码的,并且始终受到任何 JVM 的支持(这是一项要求)。所以你可以默默地捕获它:

String s = "1,2,3,4";
String smsext = null;
try{
smsext = new String(s.getBytes(),"UTF-8");
}catch(UnsupportedEncodingException e){
//can never occurs
}

但我不推荐这种过于简单的方法,因为默默地捕获异常几乎总是一种非常糟糕的做法。对于捕获的异常,从不追加,更合适的解决方案是重新抛出封装在未经检查的异常中的异常:

String s = "1,2,3,4";
String smsext = null;
try{
smsext = new String(s.getBytes(),"UTF-8");
}catch(UnsupportedEncodingException e){
//can never occurs because UTF-8 is always supported
throw new RuntimeException(e);
}

使用这段代码,如果有一天您更改了 try-catch block 的主体,从而可能发生 UnsupportedEncodingException:异常不会被静默忽略。

关于android - 如何处理永远不会发生的检查异常(UnsupportedEncodingException)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26826936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com