dies Nehmen wir als Beispiel:Java - Würfen arbeiten nicht für einen Subtyp von einer Ausnahme, die behandelt wird
public class TestClass {
public static void test() throws SSLHandshakeException {
throw new SSLHandshakeException("I'm a SSL Exception");
}
public static void main(String[] args) throws SSLHandshakeException {
try {
test();
} catch (IOException ioe) {
System.out.println("I`m handling IO exception");
}
}
}
Also, ich meine, in der Testmethode haben Ich werfe nur einen SSLHandshakeException
das ist ein Subtyp von IOException
.
Der Ausgang für dieses ist "Ich handle IO Exception".
Warum passiert das? Ich habe erwartet, dass meine Methode die SSLHandshakeException
werfen wird. Gibt es eine Regel, dass catch
wichtiger ist als throws
?
Ich will nur
try {
test();
} catch (SSLHandshakeException se) {
throw se;
} catch (IOException ioe) {
System.out.println("I`m handling IO exception");
}
mit vermeiden, da halte ich es weniger lesbar
Ok, ich verstehe es jetzt.Die Sache ist, ich brauche meine Hauptmethode (in diesem Fall), um zu wissen, wie IOExceptions anders als SSLHandshakeException gehandhabt werden und die Verantwortlichkeit dafür anderen Aufrufmethoden übergeben. –
habe ich basierend auf deiner Bearbeitung auf die Frage bearbeitet. Es wäre ideal, wenn die Ausnahmen, die Sie abfangen müssen, * andere * Unterklassen von IOException sind. Dann können Sie nur diese fangen und die SSL-Ausnahmen werden durchlaufen. Ansonsten ist dies der richtige Weg. – RobCo