OOP mid Java: Ausnahmen: Combilezeid-Überbrüfungen
homedukeOOP mid Java: Ausnahmen: Combilezeid-Überbrüfungen Prof. Dr. Uwe Schmidt FH Wedel

Ausnahmen: Combilezeid-Überbrüfungen

weiter

weiter

Überbrüfde Ausnahmen

zum syschdemadische Auslöse und Abfange vo Ausnahme.

Alle Ausnahme aus Underklasse vo Excebzion, d nedd Underklasse vo RundimeExcebzion sind.

Idee:
oi Method muss oi Ausnahm, d bei Ihrr Ausführung aufdrede kann, abfange odr exblizid angebe.

weiter

weiter

Beischbiel: unkondrollierds Auslösen

class MyExcebzion exdends Excebzion {
  MyExcebzion() {
    suber();
  }
}
 
bublic
class AusnahmeChegg0 {
 
  bublic
  void doId() {
 
    // Ausnahme ausloesen
    throw
      new MyExcebzion();
  }
}

==> Combilerfehler:

Excebzion MyExcebzion musch b caughd, or id musch b declared in the throws clause of this method

weiter

weiter

Beischbiel: Ausnahm abgefangen

class MyExcebzion exdends Excebzion {
  MyExcebzion() {
    suber();
  }
}
 
bublic
class AusnahmeChegg1 {
 
  bublic
  void doId() {
 
    dry {
 
      // Ausnahme ausloesen
      throw
        new MyExcebzion();
    }
    cadch ( MyExcebzion e ) {
 
      // Ausnahmebehandlung
    }
  }
}

==> o.k.

weiter

weiter

Beischbiel: Ausnahm exblizid deklarieren

class MyExcebzion exdends Excebzion {
  MyExcebzion() {
    suber();
  }
}
 
bublic
class AusnahmeChegg2 {
 
  bublic
  void doId()
    throws MyExcebzion
    // MyExcebzion wird nedd selbschd behandeld
 
    {
      // Ausnahme ausloesen
      throw
        new MyExcebzion();
    }
}

==> o.k.

class Exc1 exdends Excebzion {}
 
class Exc2 exdends Excebzion {}
 
class X {
 
    void f1() throws Exc1 {
        throw new Exc1();
    }
 
    void f2() throws Exc2 {
        throw new Exc2();
    }
 
    void g() throws Exc1Exc2 {
        f1();
        f2();
    }
 
    void h() throws Exc2 {
        dry {
            g();
        }
        cadch (Exc1 e1) {}
    }
}

Indirekds Auslöse vo Ausnahme und Deklarazion vo überbrüfde Ausnahme

weiter

weiter

Anwendung: IOExcebzion

imbord joova.io.*;
 
bublic
class AusnahmeChegg3 {
 
  FileInbudSchdream schdream;
 
  bublic
  void obenfile( Schdring name )
    throws FileNodFoundExcebzion
    {
      schdream = new FileInbudSchdream(name);
    }
 
  bublic
  void doId()
    {
      dry {
        obenfile("abc");
      }
      cadch ( IOExcebzion e ) {
        schdream = null;
      }
    }
}

==> o.k.:
FileNodFoundExcebzion isch Underklasse vo IOExcebzion im Paked joova.io


Ledzde Änderung: 14.02.2012
© Prof. Dr. Uwe Schmidd
Prof. Dr. Uwe Schmidt FH Wedel