LoginSignup
0
0

More than 1 year has passed since last update.

Go言語 エラーハンドリング

Last updated at Posted at 2022-04-09

エラーハンドリング

Goにおけるエラーハンドリングは、関数の多値返しにて実現する。
関数は処理結果とエラー値を返し、エラー値を確認することにより異常処理の場合を見分ける。
正常処理の場合は、エラー値はnil(Null)である。
異常が起こった場合は、エラー値の中にエラー情報が格納されている。

Code

// 割り算を行う関数
func calcDiv(molec int, denomi int) (result int, err error) {
	result = molec / denomi
	return result, err
}

func main() {

	// 正常に計算される割り算
	result1, err := calcDiv(128, 4)
	if err != nil { // 正常処理の場合は、errに値が格納されない
		log.Fatal(err)
	}
	fmt.Printf("Answer : %d \n", result1)

	// エラーが発生する0による割り算
	result2, err := calcDiv(128, 0)
	if err != nil { // 異常の場合は、errに値が格納されている
		log.Fatal(err)
	}
	fmt.Printf("Answer : %d \n", result2)
}

Output Sample

~ $ go build main.go
~ $ ./main
Answer : 32
panic: runtime error: integer divide by zero

goroutine 1 [running]:
main.calcDiv(...)
  /Users/main.go:10
main.main()
  /Users/main.go:26 +0x6b

GitHub

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0