Мне было сказано в комментарии в другой ветке, что я должен использовать исключения всякий раз, когда происходит что-то необычное, даже если это не смертельно для сценария.Это произошло, когда я использовал конструкции, похожие на следующие:
return err("File could not be loaded");
, которые выводили бы ошибку на экран и возвращали false, завершая обработку инструкций.Было высказано предположение, что это будет лучше обрабатываться с исключениями.
Проблема в том, что программа, по сути, является языковым интерпретатором, управляемым через консоль, что означает, что в любое время вводится команданеправильно, или в интерпретируемом коде есть ошибка, должна отображаться ошибка.
Помимо того, что эти проблемы, по-видимому, незначительно обрабатываются как исключения, как это должно быть реализовано?Как блок try можно использовать для управления путями обработки?Например, в настоящее время мой код выглядит следующим образом:
if(!validate(code))
return false; //the validate function already having output the error
else
process(code);
Как мне обеспечить, чтобы процесс (код) выполнялся только в случае успешной проверки (кода)?Должен ли я просто return false;
из функции в блоке catch?Казалось бы, это возвращает к первоначальной проблеме использования возвращаемых значений для обработки исключительных событий.Мне кажется, что основная проблема заключается в том, что эти проблемы вовсе не являются исключениями, но я полагаюсь на тех, у кого больше опыта, чем у меня.