Українська
Підсумки
Висновки
Помилки компіляції, винятки під час виконання й логічні помилки мають різну природу, тому обробка винятків не замінює перевірки формул. Ієрархія Throwable розділяє Exception і Error, а обробники розташовують від вузького типу до широкого. Вузький try охоплює лише операцію з очікуваним збоєм, finally виконує завершальні дії, а порожній catch приховує причину. require і check відрізняють помилку викликача від неможливого стану, а власний тип винятку доречний, коли причину потрібно розрізняти програмно. null підходить для очікуваної відсутності, виняток – для порушення контракту, а Result передає успіх або помилку як значення, яке обов’язково обробляють. use закриває ресурс і після винятку, зберігаючи помилку закриття як пригнічену. Трасування стека з Caused by і налагоджувач IntelliJ IDEA з точками зупинки допомагають знайти причину, а не лише її наслідок. Межа CLI перетворює результат на повідомлення й код завершення, а після помилки стан даних не повинен змінитися частково.
Питання для самоперевірки
- Чому не слід безумовно перехоплювати Throwable?
- Як порядок catch впливає на вибір обробника?
- Чим require відрізняється від check?
- Навіщо зберігати cause?
- Чим map відрізняється від mapCatching?
- Яку проблему вирішує use?
- Чому finally не є гарантією проти завершення процесу?
- Як налагоджувач допомагає знайти логічну помилку без винятку?