Возможно, вместо того, чтобы исследовать причину, вы можете попытаться создать подкласс AppException для определенных целей.
например.
class StreamException extends AppException {}
try {
throw new StreamException();
} catch (StreamException e) {
// treat specifically
} catch (AppException e) {
// treat generically
// This will not catch StreamException as it has already been handled
// by the previous catch statement.
}
Этот шаблон можно найти и в Java.Одним из них является пример IOException .Это суперкласс для многих различных типов IOException, включая, но не ограничиваясь, EOFException, FileNotFoundException и UnknownHostException.