Тема корректной обработки ошибок в программе является довольно сложным вопросом в программировании. Отчасти от того, что и она сама является источником постоянных недоразумений и ошибок проектирования из-за коварной рекурсии в природе ошибок. Другую часть сложностей, как это водится, программисты создают себе сами, вводя ненужную путаницу.
Возникающие при работе кода ошибки по своему происхождению можно разделить на:
- ошибки ввода и вывода
- ошибки самого кода
- ошибки исполнителя кода
Ошибки исполнителя, в частности, аппаратные сбои тоже можно учитывать в программном коде, но далеко не всегда это целесообразно из-за сравнительной редкости в типичных условиях. Здесь не рассматриваются. Ошибки вывода сводятся к ошибкам ввода, потому что сведения о неуспешности вывода по сути должны быть введены.