Я не бачу великої різниці між питаннями обробки винятків та реєстрації даних, що обидва є суперечливими проблемами. Що ти думаєш? Чи не слід це обробляти окремо самостійно, а не переплітати з основною логікою, яку застосовує метод?
EDIT : Що я намагаюся сказати, це те, що, на мою думку, реалізація методу повинна містити лише логіку для успішного шляху виконання, а винятки мають бути оброблені в іншому місці. Йдеться не про перевірені / неперевірені винятки.
Наприклад, мова може обробляти винятки повністю перевіреним способом, використовуючи такі конструкції:
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
обробник , компілятор може забезпечити його обробку і програма потім компілювати.
Таким чином, ми маємо найкраще з перевірених та неперевірених проблем виключень: надійність та читаність.