
Обробка помилок
Error type, error wrapping, errors.Is, errors.As, custom errors, panic/recover
1Який інтерфейс використовується для представлення помилок у Go?
Який інтерфейс використовується для представлення помилок у Go?
Відповідь
Інтерфейс error — це попередньо визначений інтерфейс у Go для представлення станів помилки. Він містить єдиний метод Error(), який повертає рядок з описом помилки. Значення nil представляє відсутність помилки. Це загальноприйнятий інтерфейс, який використовується всіма пакетами стандартної бібліотеки та розробниками Go для сигналізації та поширення помилок.
2Як створити просту помилку зі статичним повідомленням у Go?
Як створити просту помилку зі статичним повідомленням у Go?
Відповідь
Функція errors.New() з пакета errors створює просту помилку зі статичним повідомленням. Вона повертає тип error, який реалізує інтерфейс error із наданим повідомленням. Цей підхід рекомендується для створення sentinel-помилок (попередньо визначених помилок, як-от os.ErrNotExist) або простих помилок без динамічного контексту. Для динамічних повідомлень використовуйте fmt.Errorf().
3Яка функція дозволяє створити помилку з динамічно форматованим повідомленням?
Яка функція дозволяє створити помилку з динамічно форматованим повідомленням?
Відповідь
Функція fmt.Errorf() створює помилку з динамічно форматованим повідомленням за допомогою дієслів форматування (як-от %s, %d, %v). Вона також підтримує спеціальне дієслово %w для обгортання наявної помилки, зберігаючи таким чином ланцюг помилок для подальшого аналізу. Це рекомендований метод додавання контексту до помилок зі збереженням початкової помилки.
Яке дієслово форматування дозволяє обгорнути помилку за допомогою fmt.Errorf()?
Яка функція перевіряє, чи відповідає обгорнута помилка конкретній помилці?
+17 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Основи goroutines
Channels
Go Modules
HTTP-сервер
HTTP-клієнт
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Примітиви синхронізації
Веб-фреймворки Go
Проєктування REST API
gRPC
Reflection
Керування пам'яттю
Оптимізація продуктивності
Generics
Go Design Patterns
Microservices
Безпека та автентифікація
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно