Unterschied zwischen Exception und Error

Anonim

Ausnahme vs. Fehler

Beim Ausführen eines Programms auftreten. Dies kann auf Ausnahmen oder Fehler zurückzuführen sein. Ausnahmen sind Ereignisse, die den normalen Programmablauf stören können. Fehler sind Bedingungen, die als nicht erstattungsfähig gelten. Ausnahmen beziehen sich meistens auf die Anwendung selbst, während Fehler auf das System bezogen sind, auf dem das Programm ausgeführt wird.

Was ist eine Ausnahme?

Ausnahme ist ein Ereignis, das den normalen Programmablauf stören kann. Die Namensausnahme stammt vom "außergewöhnlichen Ereignis". Das Auslösen einer Ausnahme ist das Erstellen eines Ausnahmeobjekts und das Übergeben an das Laufzeitsystem. Das Exception-Objekt wird von der Methode erstellt, in der die Exception aufgetreten ist. Das Exception-Objekt enthält nützliche Informationen wie den Typ und die Beschreibung der Exception. Wenn das Laufzeitsystem das Ausnahmeobjekt empfängt, wird es versuchen, jemanden zu finden, der es innerhalb des Aufrufstapels behandelt, indem es in umgekehrter Reihenfolge (in der die Methoden aufgerufen wurden) durchlaufen wurde. Aufrufstack ist die geordnete Liste von Methoden, die vor der Methode aufgerufen wurden, in der die Exception aufgetreten ist. Das Laufzeitsystem ist erfolgreich, wenn es eine Methode mit einem Exception-Handler findet. Exception-Handler ist ein Codeblock, der diese Ausnahme offiziell behandeln kann. Wenn das Laufzeitsystem einen geeigneten Handler findet (dh der Typ der Ausnahme entspricht dem Typ, der verarbeitet werden kann), wird das Exception-Objekt an den Handler übergeben. Dies wird als Fangen der Ausnahme bezeichnet. Wenn die Ausnahme jedoch nicht behandelt werden kann, wird das Programm beendet. In Java erben Ausnahmen von 'Throwable-Klasse. 'NullPointerException und ArrayIndexOutOfBoundsException sind zwei häufige Ausnahmen in Java.

Was ist ein Fehler?

Ein Fehler ist eine Bedingung, die als nicht erstattungsfähig angesehen werden kann, z. B. das Programm, das eine Menge an Speicher benötigt, die größer als verfügbar ist. Diese Fehler können zur Laufzeit nicht verarbeitet werden. Wenn ein Fehler auftritt, wird das Programm beendet. In Java erben Fehler von der Throwable-Klasse. Fehler stehen normalerweise für ernste Probleme, die der Programmierer (oder die Anwendung) nicht versuchen sollte, zu fangen. Fehler sind einfach anormale Zustände, von denen erwartet wird, dass sie unter normalen Umständen nicht vorkommen und daher nie vorhergesehen werden. Zum Beispiel sind OutOfMemoryError, StackOverflowError und ThreadDead solche Fehler. Methoden sollten niemals Fehlerbehandlungsroutinen enthalten.

Was ist der Unterschied zwischen Exception und Error?

Beide Fehler und Ausnahmen sind unerwünschte Ereignisse während der Ausführung eines Programms. Sie haben jedoch entscheidende Unterschiede. Ausnahmen können vom Programmierer vorgesehen werden, während ein Fehler schwer vorhersehbar ist.Ausnahmen können überprüft oder deaktiviert werden. Aber Fehler sind immer deaktiviert. Ausnahmen weisen normalerweise auf einen vom Programmierer verursachten Fehler hin. Fehler treten jedoch aufgrund eines Systemfehlers oder einer unangemessenen Verwendung einer Ressource auf. Daher sollten Ausnahmen auf der Anwendungsebene behandelt werden, während Fehler auf der Systemebene (nur wenn möglich) berücksichtigt werden sollten. Nachdem Sie eine Ausnahme behandelt haben, kehren Sie garantiert zum normalen Programmfluss zurück. Aber selbst wenn ein Fehler erkannt wird, weiß der Programmierer vielleicht nicht, wie er damit umgehen soll. Im Gegensatz zur herkömmlichen Fehlerbehandlung können Ausnahmen den Fehlerbehandlungscode vom regulären Code trennen.