Лучший способ обрабатывать ошибки при создании библиотеки - PullRequest
0 голосов
/ 08 мая 2020

Я планирую разработать библиотеку, которую я могу статически связать, чтобы повторно использовать любой код, который я часто переписываю. Я хотел бы иметь возможность загрузить его в inte rnet в один прекрасный день, если он станет достаточно большим, и поэтому я стараюсь использовать «передовой опыт» в максимально возможной степени.

Я решаю, как Я должен go об обработке ошибок / исключений, и я не уверен на 100% в различных способах сделать это. Я хотел бы сделать это простым и удобным для пользователя моей библиотеки и, следовательно, в идеале, чтобы произошло следующее, хотя я не уверен, что возможно, а что нет:

  • Пользователь не должен постоянно «проверять» наличие ошибок, используя команду try / catch или проверяя коды ошибок каждый раз, когда он вызывает одну из моих функций.
  • Пользователь может просто обрабатывать все ошибки, которые могут возникнуть в одном месте, например, функция обратного вызова (я думаю, пример того, как современный OpenGL делает это)
  • Программа пользователя не sh когда эта функция обратного вызова или механизм обработки обрабатывает ошибку, но позволяет ему отображать ошибку сообщение, как бы он ни хотел, и сам «справится» с ситуацией, если захочет. это открытый исходный код, например)

Я не уверен, как go делать т его и ищу любой совет. Стоит ли мне изучить std :: exception? Должен ли я возвращать перечисление, представляющее код ошибки? Следует использовать try / catch? et c.

Большое спасибо

...