Empfohlene Methode für die Behandlung von UnsupportedEncodingException von String.getBytes ("UTF-8")

10

Was ist der empfohlene Weg, um eine nicht unterstützteEncodingException beim Aufruf zu behandeln String.getBytes ("UTF-8") innerhalb einer Bibliotheksmethode?

Wenn ich Ссылка richtig lese, UTF -8 Codierung sollte immer verfügbar sein, was zu der Annahme führt, dass es keinen Grund gibt, diese Ausnahme an den Consumer der Bibliothek weiterzugeben (das heißt, fügen Sie der Methodensignatur eine throws -Klausel hinzu). Es scheint, dass jeder Fehlermodus, der die UTF-8-Kodierung unmöglich macht, katastrophal ist und mich dazu bringt, diesen Handler zu schreiben:

%Vor%

Gibt es einen Fehlermodus, der in diesem Snippet nicht behandelt wird?

    
cqcallaw 25.05.2012, 04:22
quelle

2 Antworten

37

Weißt du, was ich tue?

%Vor%

Dieser wird keine geprüfte Ausnahme ausgelöst.

Update : Seit Java 1.7 haben wir StandardCharsets .

%Vor%     
Judge Mental 25.05.2012 04:40
quelle
1

Ich bin über diese Frage gestolpert und habe versucht herauszufinden, ob UTF-8 immer verfügbar ist. Also danke für den Link.

Ich stimme zu, dass es keine Notwendigkeit für eine checked Ausnahme gibt, wenn es um das Codieren und Decodieren mit einem bestimmten Zeichensatz geht, der garantiert verfügbar ist. Wenn der Zeichensatz eine Variable war, die übergeben wurde, würde ich wahrscheinlich UnsupportedEncodingException auslösen.

Das mache ich in einem ähnlichen Stück Android-Code:

%Vor%

CharEncoding.UTF_8 ist nur die Stringkonstante von Apache Commons für "UTF-8".

Der Vorschlag von Judge Mental, StandardCharsets.UTF_8 zu verwenden, ist großartig, aber für diejenigen von uns, die Android-Entwicklung betreiben, ist sie nur für SDK 19 (KitKat) und höher verfügbar.

    
spaaarky21 07.08.2015 20:03
quelle

Tags und Links