Сводка
Как вы видите, обработка ошибок и ведение журнала в Go осуществляются не так, как в других языках программирования. Во-первых, подход Go к обработке ошибок очень прост. Вы используете условие if
, и функция, которую вы вызываете, должна возвращать несколько значений. По соглашению, последнее возвращаемое значение представляет собой ошибку. Если переменная ошибки равна nil
, ошибок нет. Если значение этой переменной не равно nil
, ошибка есть. Вы можете передать ошибку вверх по стеку, просто возвратив ее снова. При желании в ошибку можно включить дополнительный контекст.
Можно создавать переменные ошибок и повторно использовать их в качестве возвращаемых значений для распространенных сообщений об ошибках в программах.
Также необходимо знать, когда следует использовать панику. Мы уже рассмотрели, как работают функции panic
и recover
. Эти функции следует использовать только в том случае, если требуется остановить программу явным образом. Возможны ситуации, когда программа перестанет отвечать на запросы, даже если ошибки обрабатываются правильно. Но это должно быть исключением, а не правилом.
Наконец, мы изучили, как работает ведение журнала в Go и как использовать стандартную библиотеку. Наряду с выводом сообщений журнала в консоль можно отправить их в файл для дальнейшей обработки, а затем отправить их в централизованное расположение. По мере расширения базы кода может потребоваться выполнять другие действия, такие как настройка уровней ведения журнала и настройка различных выходных данных. Эти задачи не поддерживаются в стандартной библиотеке. Для их решения необходимо использовать платформу ведения журналов, такую как zerolog.
Это короткий модуль, но перед его окончанием убедитесь, что вы хорошо поняли основные идеи. Они пригодятся вам при устранении неполадок в программах.