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