Verwenden von Ausnahmen mit Google Guava

8

Was ist das beste Muster für die Verwendung von Google Guava mit Methoden, die Ausnahmen auslösen sollen?

Sagen wir, ich habe:

%Vor%

Und ich möchte tun:

%Vor%

Ich konnte das obige wegen der Ausnahme nicht tun. Gibt es ein nettes Muster für die Handhabung?

    
Joe 28.07.2014, 22:04
quelle

2 Antworten

7

Propagiere die geprüfte Ausnahme als RuntimeException:

%Vor%

EDIT: Da die transformierte Liste langsam ausgewertet wird, wird die Ausnahme nicht ausgelöst, bis Sie auf die Listenelemente zugreifen. Sie können die Auswertung erzwingen, indem Sie die transformierte Liste in eine neue Liste kopieren, z. B .:

%Vor%

Sie könnten das in einen try-catch-Block schreiben, der RuntimeException abfängt und so behandelt, wie Sie wollen; Ihre ursprüngliche SomeException-Instanz kann durch Aufrufen von getCause () für die RuntimeException abgerufen werden. Oder Sie könnten einfach die RuntimeException platzen lassen.

    
dnault 28.07.2014 22:26
quelle
-1

Es hängt davon ab, wie Sie mit der Ausnahme umgehen wollen.

  1. Stoppen Sie die Listenumwandlung, wenn eine Ausnahme auftritt: Siehe @ dnault's Antwort.
  2. Setzen Sie die Listenumwandlung fort und entfernen Sie das Element, das die Ausnahme verursacht hat (und protokollieren Sie einige Fehlermeldungen). In diesem Fall geben wir null zurück, wenn eine Ausnahme auftritt. Dieser Nullwert wird aus der endgültigen Liste entfernt:

    %Vor%

BEARBEITEN Wenn someMethod einen Nullwert zurückgeben kann, sollten Sie einen Wrapper wie diesen verwenden:

%Vor%

Die Listenumwandlung lautet dann:

%Vor%     
Fabien Fleureau 30.07.2014 09:45
quelle

Tags und Links