Вот два класса, которые отвечают за EOF и Nfn исключений:Исключения или как это работает из «внутри»?
public class FileNotFoundException extends IOException {
public FileNotFoundException() {
super();
}
}
class EOFException extends IOException {
public EOFException() {
super();
}
}
Если мы посмотрим на другие подклассы Throwable суперкласса ситуация будет одинаковой для большинства из них. Только конструктор по умолчанию, который вызывает конструктор суперкласса и т. Д., Если мы не достигнем вершины цепочки наследования.
Я не могу понять, где логическая часть кода, которая отвечает за EOF или ситуацию с NFN? Если разница между ними содержит попытаться поймать блок, то давайте попробуем следующий:
try {
// code with possible IOException
}
catch(FileNotFoundException e) {
// what to do if FNF has happened
}
catch(EOFException e) {
// what to do if EOF has happened
}
Теперь давайте попробуем изменить FileNotFoundException с EOFException:
try {
// code with possible IOException
}
catch(EOFException e) {
// what to do if FNF has happened
}
catch(FileNotFoundException e) {
// what to do if EOF has happened
}
Оба варианта должны работать таким же образом, из-за их классы, которые равны и выполняют одну и ту же работу - просто вызовите конструктор своего суперкласса.
Итак, почему нам нужны два класса, которые выполняют одну и ту же работу?
P.S. тот же вопрос для большинства подклассов класса Throwable. Почему у нас нет только двух подклассов для класса Throwable - одно проверяемое и другое неконтролируемое? Для чего нам нужно столько же классов, которые выполняют одну и ту же работу - просто вызовите конструктор своего суперкласса?
Может быть, так что вы можете сказать разницу между FNF и EOF? – immibis
Если бы был только один, вы бы попробовали {/ * код с возможным IOException * /} catch (CheckedException e) {/ *, как вы узнаете, произошел ли FNF или произошел EOF? * /} ' – immibis
Возможный дубликат [Что нужно для других классов исключений, когда один класс исключения может обрабатывать все типы исключений?] (Http://stackoverflow.com/questions/34329705/what-is-the-need- of-other-exception-classes-when-exception-class-alone-can-handl) –