Как работать с os.Exit?

Junior
535 просмотров
AFK Offer AI

os.Exit(code) немедленно завершает программу с указанным кодом выхода. Код 0 — успех, ненулевой — ошибка. Важная особенность: defer-функции НЕ выполняются при os.Exit. Файлы не сбрасываются, буферы не флашатся. Поэтому os.Exit используют редко — обычно только в main() или в log.Fatal (который вызывает os.Exit(1)). Для graceful shutdown лучше возвращать ошибку из main и вызывать os.Exit один раз в самом конце. В тестах os.Exit мешает — используй TestMain для перехвата.

Следующий вопрос

Как сортировать кастомные типы?