Exception-Objekte



Eine gute Antwort wäre:

exp verweist auf ein NumberFormatException-Objekt.

Exception-Objekte

Hier ist eine try/catch-Struktur:

try
{
  // Anweisungen, von denen einige eine Ausnahme auslösen könnten
}
catch ( IrgendeinExceptionTyp ex )
{
  // Anweisungen um diesen Ausnahmetyp zu behandeln
}
....  // möglicherweise weitere catch-Blocks
....  // möglicherweise ein finally-Block

Wenn ein catch{}-Block die Kontrolle bekommt (mit der Ausführung beginnt),
besitzt er eine Referenz auf ein Objekt der Klasse Exception
(oder auf eine Subklasse von Exception).
Die spezifische Klasse des Objekts hängt davon ab was für eine Ausnahme ausgelöst wurde.


Wenn während der Programmausführung ein Exception-Ereignis auftritt,
übernimmt das Java Laufzeitsystem und
erzeugt ein Exception-Objekt, um dieses Ereignis zu repräsentieren.
Die Information über das Ereignis wird in das Objekt gestellt.
Wenn die Ausnahme innerhalb eines try{}-Blocks auftrat,
schickt das Java Laufzeitsystem das
Exception-Objekt an den geeigneten
catch{}-Block (wenn es einen gibt).

Exception-Objekte sind Java Objekte.
Sie verfügen über Instanzvariablen und Instanzmethoden darunter:

  • public void printStackTrace()
    • Ein Stack-Protokoll ausgeben ― eine Liste,
      die eine Sequenz von Methodenaufrufen bis zu dieser Ausnahme zeigt.
  • public String getMessage()
    • Gibt einen String zurück,
      der beschreiben könnte was schief gegangen ist.

Ein catch{}-Block kann diese Methoden verwenden
um eine informative Fehlermeldung auf den Bildschirm auszugeben.

FRAGE 2:


Angenommen ein Array wurde deklariert durch:

int[] wert = new int[10];

Ist es zulässig sich auf wert[10] zu beziehen?