2016-06-12 5 views
0

Java sagt, wenn wir eine checked Ausnahme von einer Methode werfen, dann müssen wir entweder deklarieren oder es mit try/catch Block umgeben. Ich verstehe nicht, warum es deklariert oder umgibt es mit try/catch-Block, weil nur durch die Ausnahme zu erklären, können wir nicht mit der Ausnahme umgehen, aber wenn wir es mit try/catch-Block umgeben, können wir damit umgehen. Wenn oben der Fall ist, wie wird man dann als Alternative zu anderen betrachtet?Die Ausnahme mit try/catch-Block in Java deklarieren oder umgeben

+0

[Angeben der Ausnahmen, die von einer Methode ausgelöst werden] (http://docs.oracle.com/javase/tutorial/essential/exceptions/declaring.html) – Arc676

+2

Es ist eine Alternative in dem Sinne, dass der Code nur kompiliert wird, wenn Sie mach das eine oder andere. Das bedeutet nicht, dass das Auslösen einer Ausnahme dasselbe ist wie das Auffangen. Wenn Sie es werfen wollen, dann brauchen Sie Würfe, wenn Sie es fangen wollen, müssen Sie versuchen/fangen. Wenn Sie es nicht in der throws-Klausel angeben und es auch nicht abfangen, wird es nicht kompiliert. –

Antwort

0

Zwei Optionen sind verfügbar 1. Die Ausnahme auslösen -> Dies bedeutet, dass das Programm beim Auftreten der Ausnahmebedingung erwartet, dass der Aufrufer es behandelt. 2. Versuchen/fangen -> dies bedeutet, dass die Methode selbst damit umgehen wird.

Der Unterschied ist subtil und ja, manchmal fangen wir die Ausnahme von uns in der nächsten Schicht geworfen. Aber wenn Sie diese Aussagen sorgfältig betrachten, ist das der Hauptunterschied zwischen den beiden Ansätzen.

In großen Teams arbeiten oft Unterteams an Layern. Die inneren Schichten können einfach die Ausnahme auslösen und die weitere Ausführung des Flusses stoppen. Äußere Ebenen sollen es fangen und eine anmutige Fehlermeldung oder einen würdevollen Weg zeigen, mit diesen Ausnahmen umzugehen, so dass der Benutzer die Java-Stack-Ablaufverfolgung nicht sehen kann.

Hoffe, das hilft.

Verwandte Themen