Go言語 - エラー時の戻り値
Go言語にはerror型インターフェースが定義されているので、これに適合するエラー用構造体を作成して、エラー時にはこの構造体をerror型として返す。
正常終了時には、nil リテラルを返すようにする。
package main import ( "fmt" ) /* Goで定義されているerror型インターフェース type error interface{ Error() string } */ type MyError struct{ msg string } func (m *MyError) Error() string{ return m.msg } func NewMyError(s string) error{ return &MyError{msg: s} } // エラー時にerror型を返す関数 func myFunc(flag bool) error { if flag { return NewMyError("Error:エラー発生")} return nil } func main() { fmt.Println( myFunc(true ) ) //-> Error:エラー発生 fmt.Println( myFunc(false) ) //-> <nil> }
通常はこっちを使用した方が簡単
package main import "fmt" func main() { err := fmt.Errorf("error error error") // error型が作成される fmt.Println(err) }