Menu
Coddy logo textTech

`error` インターフェース

CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 103/109。

Goでは、errorインターフェースはエラー状態を表す組み込み型です。Error()メソッドを実装する任意の型は、このインターフェースを満たします。

エラーインターフェースの定義は次の通りです:

type error interface {
    Error() string
}

カスタムエラー型を作成します:

type MyError struct {
    Message string
}

func (e MyError) Error() string {
    return e.Message
}

func main() {
    err := MyError{Message: "something went wrong"}
    fmt.Println(err)
}

出力は次のようになります:

something went wrong
challenge icon

チャレンジ

簡単

このチャレンジでは、Goのerrorインターフェースを扱います。errors.New()関数を使用してカスタムエラーを作成し、エラーが存在するかどうかを確認する必要があります。

コードにはすでにエラーを返す関数が含まれています。あなたのタスクは、エラーがnilでないことを確認し、適切なメッセージを出力することです。

チートシート

error インターフェースは、エラー状態を表す組み込み型です。Error() メソッドを実装するすべての型は、このインターフェースを満たします:

type error interface {
    Error() string
}

カスタムエラー型を作成します:

type MyError struct {
    Message string
}

func (e MyError) Error() string {
    return e.Message
}

func main() {
    err := MyError{Message: "something went wrong"}
    fmt.Println(err) // 出力: something went wrong
}

errors.New() を使用して単純なエラーを作成し、エラーが nil でないかどうかを確認します。

自分で試してみよう

package main

import (
	"errors"
	"fmt"
)

func main() {
	// この関数はエラーを返します
	err := generateError()
	
	// TODO: err が nil でないか確認してください
	// err が nil でない場合、「Error occurred: 」に続けてエラーメッセージを出力します
	// ヒント: if 文を使用して err != nil かどうかを確認します
	
	
	// この行はエラーが発生しなかった場合にのみ実行されます
	fmt.Println("Program completed successfully")
}

// この関数はエラーを生成します
func generateError() error {
	return errors.New("something went wrong")
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン