[JAVA] Punkt 73: Für die Abstraktion geeignete Ausnahmen auslösen
73. Für die Abstraktion geeignete Ausnahmen auslösen
- Ausnahmen, die in den unteren Ebenen ausgelöst werden, scheinen wenig mit den spezifischen Aufgaben zu tun zu haben, die in den höheren Ebenen ausgeführt werden. Ausnahmen, die in den unteren Schichten erstellt wurden, können sich auch auf die API-Implementierung in den höheren Schichten auswirken (** nicht sehr genau **). Um dieses Problem zu vermeiden, kann die in der unteren Schicht ausgelöste Ausnahme abgefangen und in die Ausnahme in der oberen Schicht übersetzt werden.
// Exception Translation
try {
... // Use lower-level abstraction to do our bidding
} catch (LowerLevelException e) {
throw new HigherLevelException(...);
}
- Wenn Sie Ausnahmen von niedrig nach hoch übersetzen, sollten Sie den verkettungsbewussten Konstruktor wie folgt schreiben, um die Ausnahmeinformationen im niedrigen zu behalten.
// Exception Chaining
try {
... // Use lower-level abstraction to do our bidding
} catch (LowerLevelException cause) {
throw new HigherLevelException(cause);
}
- Am besten verhindern Sie, dass in den unteren Ebenen Ausnahmen auftreten, und überprüfen Sie die Werte der zu diesem Zweck übergebenen Parameter.