2016-11-19 3 views
-3

wenn ich versuche, diese Ausnahme zu fangen es mir eine Kompilation Fehlermeldung, die, sagt gibt „Ausnahme LinkedListException wird nie im Körper der entsprechenden try-Anweisung geworfen“. Was bedeutet das?benutzerdefinierte Ausnahme Deklarieren in Java

try { 
     LList.Node someNode = list.nextNode(node); 
     // We should not get here. 
     assertTrue(false); 
    } 
    catch (LinkedListException ex) { 
     // If we get here we are happy as it throw the exception 
    } 
+2

es bedeutet, dass Sie keinen Code hat nennen, die 'LinkedListException' wirft, das nehme ich an würde eine geprüfte Ausnahme. – Rogue

+0

bedeutet dies, dass 'list.nextNode (node)' diese Ausnahme nicht auslöst. –

+1

Hat list.nextNode (node) eine 'thrown LinkedListException' in der Deklaration? –

Antwort

1

Wenn die Ausnahme kein Runtime ist, muss sie dann (in der Methodensignatur throws Klausel) deklariert werden. Daher kann der Compiler prüfen, ob der Code, den Sie aufrufen, diese Ausnahme auslösen kann oder nicht, und Sie können keine catch hinzufügen, da diese nie ausgeführt werden.

Wenn Sie sicher sind, dass diese Ausnahme irgendwo geworfen werden kann tief unten in diesem Code, dann muss es in einer anderen Ausnahme auf dem Weg gefangen und ignoriert oder verpackt worden. Oder Sie kompilieren gegen die falsche Version der Klasse.

1

Die Ausnahme muss irgendwo in Ihrem Code mit throw Stichwort geworfen werden.

Zum Beispiel

Die ArithmeticException wird einige geworfen, wo tief in den Code. Wenn Sie nicht wollen, zu behandeln (genau wie, wie die Person dachte über das Schreiben ArithmeticException) Sie können sprudeln wie

void someMethod() throws Exception 
{ 
    throw new Exception(); 
} 

Die Person, die diese Methode aufgerufen hat, es zu handhaben mit try, catch, finally wie wir in der Regel Für Ausnahmen IOException usw.

Also, wenn Sie Ihre Ausnahme werfen möchten, fügen Sie diese throw new LinkedListException() einige wo in Ihrem Versuch Block wo immer Sie eine Ausnahme auslösen möchten.

Verwandte Themen