Java Exceptions

mamnu

Cadet 4th Year
Registriert
Okt. 2017
Beiträge
119
Hallo,
Kann mir einer mal kurz bei Exceptions weiterhelfen und zwar bei folgenden Problemen:
Fangen wir erst ein mal mit dem etwas leichteren an, wo ich mir nicht ganz sicher bin und zwar wie lässt man eine Exception, die man nicht in der Java Dokumentation findet von einer anderen Exception erben auch mit super();?

und die zweite Frage ist warum braucht man bei einer Exception zwei Konstruktoren? Ich check das gerade nicht, dazu mal kurz die Aufgabenstellung: . Implementieren Sie den Standardkonstruktor sowie einen Konstruktor mit einem String als Parameter für eine Fehlermeldung
 
mamnu schrieb:
wie lässt man eine Exception, die man nicht in der Java Dokumentation findet von einer anderen Exception erben auch mit super();?
So wie jede andere Klasse auch:

Code:
class MyException extends AnotherException {
  public MyException() {
    super(...);
  }
}

mamnu schrieb:
und die zweite Frage ist warum braucht man bei einer Exception zwei Konstruktoren?
Wie bereits gesagt: Eine Exception ist im Grunde eine ganz normale Klasse (die in ihrer Hierarchie irgendwo von der Klasse java.lang.Exception erbt). Jede Klasse braucht (mindestens) einen Konstruktor - egal ob es der implizite Default Konstruktor ist oder ein (oder mehrere) expliziter.
"Brauchen" tust du 2 Konstruktoren genau dann, wenn du sie brauchst ;) Soll heißen: Wenn es mehrere Kombinationen von Parametern (oder mit/ohne optionaler Parameter) geben soll, um eine Instanz dieser Klasse zu erstellen.
 
Zuletzt bearbeitet:
Warum braucht man bei irgendeiner Klasse mehrere Konstruktoren? ;)

Hier geht es ganz offensichtlich um eine isolierte "fremde" Aufgabe, aber spätestens nach dem Entwurf eines Objektmodells, evtl Exceptionmodells, wird ganz schnell klar, ob und was und wie viele Konstruktoren man braucht.

Exception(uint hresult) für einen Fehlercode, den man übergeben will.
Exception(string message) für eine Fehlermeldung, die man übergeben will.
Exception(uint hresult, string message) wenn man zusätzlich zum Fehlercode auch noch eine spezielle Ausgabe haben will.
Exception (enum fatalityLevel) wenn man einen Schweregrad designieren will.

Und und und und und. Es kommt immer drauf an, was man gerne hätte, wie man sein Objektmodell entwirft und was die Anforderung von einem verlangt.

Klassen sind in OO-Sprachen grundsätzlich nicht dokumentiert, außer die üblichen Standardklassen. Wie denn auch? Man baut die sich ja selber und ist dann auch selber in der Pflicht, diese zu dokumentieren.
 
Zurück
Oben