Предположим, что для того, чтобы получать не одну ошибку, а сразу несколько без лишних нагромождений и сложностей связанных с вложенностью, разделять логику обработки ошибок от рабочего кода?
Ну смотри. У тебя случилась низкоуровневая ошибка ввода-вывода. Хули ты с этим сделаешь