Согласны ли вы с тем, что разработчики Java class java.io.IOException
должны были исключить исключение во время выполнения из java.lang.RuntimeException
вместо проверяемого исключения, полученного только из java.lang.Exception
?
Я думаю, что класс IOException
должен был быть неконтролируемым исключением, потому что мало что может сделать приложение для решения таких проблем, как ошибки файловой системы. Однако,
в Когда вы не можете выбросить исключение, Elliotte Rusty Harold утверждает, что большинство ошибок ввода-вывода являются временными, поэтому вы можете несколько раз повторить операцию ввода-вывода перед тем, как отказаться:
Например, IOComparator может не допускайте ошибки ввода-вывода, но - потому что многие проблемы ввода-вывода переходный - вы можете повторить несколько раз, как показано в листинге 7:
Это вообще так? Может ли Java-приложение исправлять ошибки ввода-вывода или ждать восстановления системы? Если это так, тогда разумно проверять проверку IOException, но если это не так, тогда IOException следует отключить, чтобы бизнес-логика могла делегировать обработку этого исключения отдельному системному обработчику ошибок.