LoginSignup
7
5

More than 5 years have passed since last update.

エラーハンドリングについて

Last updated at Posted at 2014-11-21

コマンドを呼び出してWait した時に返されるerrには ExitError とそれ以外というのがあって、ExitError は コマンドの異常終了、それ以外はほぼIOエラーということが公式ドキュメントに記載されている。

異常終了だったのかそうでないのかを判定する方法は以下のような感じになる。

err := cmd.Wait()
if exitError, ok := err.(*exec.ExitError); ok {
  // 異常終了
  log.Fatal(exitError)
}
if err != nil {
  // たぶんIOエラー
  log.Fatal(err)
}

err が exec.ExitError型かどうかを判定するのに型アサーションで判定するというテクニックが使われている。golang では一般的なのだろう。今後も使っていきたい。

[参考]
Package exec
[Go言語] Goでのキャスト (型アサーション)

7
5
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
7
5