Goにおけるエラー処理のやり方

Go 言語では、例外処理方法は以下の通りです。

  1. もし
  2. もしそうならば
result, err := someFunction()
if err != nil {
// 处理错误
} else {
// 处理结果
}
  1. 延期する
  2. 回復する
  3. 延期する
  4. 回復する
func someFunction() {
defer func() {
if r := recover(); r != nil {
// 处理异常
}
}()
// 可能发生异常的代码
}
  1. アワアワ
  2. 回復する
  3. パニック
  4. 回復する
func someFunction() {
if somethingWrong {
panic("something went wrong")
}
}
func main() {
defer func() {
if r := recover(); r != nil {
// 处理异常
}
}()
someFunction()
}
  1. 独自で定義したエラー型を使って、別のエラーケースに対応し、関数呼び出しのときにそれぞれのエラーメッセージを返します。例えば、
type MyError struct {
message string
}
func (e *MyError) Error() string {
return e.message
}
func someFunction() error {
// 发生错误时
return &MyError{"something went wrong"}
}
result := someFunction()
if result != nil {
// 处理错误
} else {
// 处理结果
}

例外処理を行う上でよく使うメソッドをいくつかご紹介しますので、状況に応じて適切な手法を選択してください。

bannerAds