То что часто фейлится не должно быть исключением
А для этого нам следует как-то уведомлять о наличии фейла. И, кажется, тут мы опять пришли к альтернативным способам обработки ошибок, будь то возврат каких-нибудь статусов, монад с ручной проверкой результата или вызов разных функций в зависимости от того, как завершилось событие