Es gibt eine Methode get(sql)
(ich kann es nicht ändern). Diese Methode gibt MyObjects zurück und muss sich in try catch befinden, da JqlParseException
dort möglich ist. Mein Code ist:Throw Ausnahme in optional in Java8
String sql = something;
try{
MyObject object = get(sql);
} catch(JqlParseException e){
e.printStackTrace();
} catch(RuntimeException e){
e.printStackTrace();
}
Ich will versuchen, fangen entfernen und Optional
Klasse verwenden, habe ich versucht:
MyObject object = Optional.ofNullable(get(sql)).orElseThrow(RuntimeException::new);
aber IDE Kraft es versuchen zu fangen. Und für:
MyObject object = Optional.ofNullable(get(sql)).orElseThrow(JqlParseException::new));
ist ein Fehler (in IDE) The type JqlParseException does not define JqlParseException() that is applicable
. Gibt es eine Möglichkeit zu vermeiden, versuchen, Blöcke zu fangen und optional zu verwenden?
Springe zur Definition von 'get', sehen Sie, ob 'JqlException' heißt. Wenn dies der Fall ist, müssen Sie try ... catch verwenden. – Sweeper
Es scheint, dass ziemlich viele Leute optional als NextGeneration ™ Kontrollflusskonstrukt betrachten. Das wird nicht passieren. Optional, ebenso wie seine primitiven Gegenstücke, kann diese Art von Aufgabe inhärent nicht behandelt werden. Es wurde nicht entwickelt, um Kontrollflusskonstrukte wie If-Else oder Try-Catch vollständig zu ersetzen. Stattdessen konzentriert es sich darauf, diese endlosen Null-Checks loszuwerden. – glee8e
@ glee8e * ['Optional'] konzentriert sich auf die Beseitigung dieser endlosen Null-Checks. * Ich wäre genauer. Viele Leute würden zu dem Schluss kommen, dass sie alle Vorkommen von "Null" durch "Optional" ersetzen sollten, was gegen die Absicht der Designer von "Optional" verstößt. – Jubobs