Найти в Дзене

Не усложнять обработку ошибок

Обработка ошибок. Всё плохо, сплошной кринж и карго-культ. Начиная с вступления, которое явно бездумно переписано с какого-то мусорного источника. исключения надо обрабатывать. Вот только пихать везде try...catch к нормальной обработке исключений не имеет ни малейшего отношения. исключение либо вообще не нужно, либо его можно точно так же обработать централизованно, без замусоривания кода бессмысленными try...catch. "Исключение с ошибкой валидации" — это бессмыслица, оксюморон. Исключение может возникнуть, если функция, которая уже использует данные, не может этого сделать. То есть, не может выполнить свою функцию. А при валидации возникает не ошибка, а собственно результат — валидные данные, или нет. Поскольку валидация и является функцией функции. И выбрасывать исключение она будет только если не может провалидировать данные. Но не тогда, когда может, и видит, что они не валидные. Вообще, рассуждая о ловле исключений, приучайтесь всегда упоминать конкретный сценарий обработки. Потому

Обработка ошибок. Всё плохо, сплошной кринж и карго-культ. Начиная с вступления, которое явно бездумно переписано с какого-то мусорного источника.

  • "В основном, это ошибки на стороне сервера" — шта? Какой сервер имеется в виду? Удалённый? Видимо, нет, хотя по логике должен быть именно удаленный, раз мы говорим о curl. Но если локальный, то снова вопрос — о каких конкретно исключениях речь? Вроде бы, тут только обращения к функциям curl, но они исключений не бросают.
  • Сам текст исключений — классическая ученическая бессмыслица. Видно, что человек ни разу не был в ситуации, когда ему надо отладить курл запрос, и пишет просто от балды, "шоб було". "Запрос не был успешен" — а как конкретно он был неуспешен?

исключения надо обрабатывать. Вот только пихать везде try...catch к нормальной обработке исключений не имеет ни малейшего отношения.

исключение либо вообще не нужно, либо его можно точно так же обработать централизованно, без замусоривания кода бессмысленными try...catch.

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

Вообще, рассуждая о ловле исключений, приучайтесь всегда упоминать конкретный сценарий обработки. Потому что поймать исключение много ума не надо. Но вот написать в catch что-то осмысленное получается далеко не всегда.

ходить за каждым исключением с трай-кетчем, как за слоном с лопатой — это как-то совсем по-деревенски.

Исключения придуманы, чтобы сделать код чище, а не чтобы постоянно спотыкаться об try..catch.

В общем случае код должен просто кинуть исключение, и не думать о том, кто и как его будет ловить.

Реферат статьи