Вопрос: Как работать с ошибками: создание, оборачивание и проверка?
Go
Junior
Без компании
Вопрос: Как работать с ошибками: создание, оборачивание и проверка?
Ответы
Создание: errors.New / fmt.Errorf. Оборачивание: fmt.Errorf("...: %w", err). Проверка: errors.Is / errors.As.
```go
package main
import (
"errors"
"fmt"
)
var ErrNotFound = errors.New("not found")
func find(id int) error {
return fmt.Errorf("find %d: %w", id, ErrNotFound)
}
func main() {
err := find(7)
fmt.Println(err)
fmt.Println(errors.Is(err, ErrNotFound))
}
```