Теория по обработке ошибок?


большинство советов по обработке ошибок сводится к нескольким советам и трюкам (см. Этот пост, например). Эти советы полезны, но я думаю, что они не отвечают на все вопросы. Я чувствую, что должен разработать свое приложение в соответствии с определенной философией, школой мысли, которая обеспечивает прочную основу для развития. Есть ли такая теория на тему обработки ошибок?

вот несколько практических вопросов:

  • как решить, если ошибка должен ли обрабатываться локально или распространяться на код более высокого уровня?
  • Как выбрать между протоколированием ошибки или отображением ее в виде сообщения об ошибке для пользователя?
  • входит, то, что должно быть сделано в коде приложения? Или это нормально, чтобы сделать некоторые записи из кода библиотеки.
  • в случае исключения, где вы должны вообще поймать их? В коде низкого или более высокого уровня?
  • если вы стремитесь к единой обработке ошибок стратегия через все уровни кода, или попытаться разработать систему, которая может адаптироваться к различным стратегиям обработки ошибок (для того, чтобы иметь возможность иметь дело с ошибками из сторонних библиотек).
  • имеет ли смысл создавать список кодов ошибок? Или это старомодно в наши дни?

во многих случаях здравого смысла достаточно для разработки достаточно хорошей стратегии для борьбы с ошибочными условиями. Тем не менее, я хотел бы знать, есть ли еще формальный / "научный" подход?

PS: Это общий вопрос, но c++ конкретные ответы тоже приветствуются (C++ - мой основной язык программирования для работы).

14 52

14 ответов: