Я не вижу большой разницы между проблемами обработки исключений и регистрации в них, поскольку оба являются сквозными проблемами. Как вы думаете? Разве это не должно обрабатываться отдельно, а не чередоваться с основной логикой, которую реализует метод?
РЕДАКТИРОВАТЬ : я пытаюсь сказать, что по моему мнению реализация метода должна содержать только логику для успешного пути выполнения и исключения должны обрабатываться в другом месте. Это не о проверенных / непроверенных исключениях.
Например, язык может обрабатывать исключения полностью проверенным способом с помощью таких конструкций:
class FileReader {
public String readFile(String path) {
// implement the reading logic, avoid exception handling
}
}
handler FileReader {
handle String readFile(String path) {
when (IOException joe) {
// somehow access the FileInputStram and close it
}
}
}
На приведенном выше концептуальном языке программа не будет компилироваться при отсутствии FileReader
обработчика , поскольку readFile FileReader
класса не выдает исключение. Таким образом, объявив FileReader
обработчик , компилятор может убедиться, что он обрабатывается, а затем программа компилируется.
Таким образом, у нас есть лучшее из проверенных и непроверенных проблем исключений: надежность и читаемость.