OOP mit Java: Ausnahmen: Compilezeit-Überprüfungen |
zum systematischen Auslösen und Abfangen von Ausnahmen.
Alle Ausnahmen aus Unterklassen von
Idee: |
class MyException extends Exception {
MyException() {
super();
}
}
public
class AusnahmeCheck0 {
public
void doIt() {
// Ausnahme ausloesen
throw
new MyException();
}
}
==> Compilerfehler: Exception MyException must be caught, or it must be declared in the throws clause of this method |
class MyException extends Exception {
MyException() {
super();
}
}
public
class AusnahmeCheck1 {
public
void doIt() {
try {
// Ausnahme ausloesen
throw
new MyException();
}
catch ( MyException e ) {
// Ausnahmebehandlung
}
}
}
==> o.k. |
class MyException extends Exception {
MyException() {
super();
}
}
public
class AusnahmeCheck2 {
public
void doIt()
throws MyException
// MyException wird nicht selbst behandelt
{
// Ausnahme ausloesen
throw
new MyException();
}
}
==> o.k. class Exc1 extends Exception {}
class Exc2 extends Exception {}
class X {
void f1() throws Exc1 {
throw new Exc1();
}
void f2() throws Exc2 {
throw new Exc2();
}
void g() throws Exc1, Exc2 {
f1();
f2();
}
void h() throws Exc2 {
try {
g();
}
catch (Exc1 e1) {}
}
}
Indirektes Auslösen von Ausnahmen und Deklaration von überprüften Ausnahmen |
IOException
import java.io.*;
public
class AusnahmeCheck3 {
FileInputStream stream;
public
void openfile( String name )
throws FileNotFoundException
{
stream = new FileInputStream(name);
}
public
void doIt()
{
try {
openfile("abc");
}
catch ( IOException e ) {
stream = null;
}
}
}
==> o.k.: |
Letzte Änderung: 14.02.2012 | © Prof. Dr. Uwe Schmidt |