April 2022
Beginner to intermediate
464 pages
6h 44m
Japanese
Goのエラーが error インタフェースを満たす値だということは説明しました。アプリケーションでエラーを生成する方法は大きく2つあります。1つは標準ライブラリの関数を使って生成する方法、もう1つはアプリケーション独自のエラー型を定義する方法です。
もっともシンプルにエラーを生成する方法が errors.New() を使ってエラーを宣言する方法です。シンプルにエラーだと呼び出し元へ伝えたいときに errors.New() が役に立つでしょう。また、ライブラリを作成する場合などは ErrNotFound というような名前の変数としてエラーを公開しておくと、呼び出し元のプログラムが呼び出し先のライブラリ側で発生したエラーを区別してハンドリングできます。
var ErrNotFound = errors.New("not found")
func findBook(isbn string) (*Book, error) {
// ...
// 値が取得できなかったため ErrNotFound を返す
return nil, ErrNotFound
}
io パッケージの io.EOF も以下のように errors.New() を使ってエラーを宣言しています。
var EOF = errors.New("EOF")
fmt.Errorf() を使ってフォーマットされた文字列を元にエラーを生成できます。フォーマットを使ったエラーの生成は以下のようになります。
func validate(length int) error {
if length <= 0 {
return Read now
Unlock full access