golangパニックエラー回復と簡単な利用シナリオ

golangパニックエラー回復と簡単な利用シナリオ

  • サンプルコード
package main

import(
    "fmt"
)

func main(){
    _,err:=deferPanic(8,0)
    if err!=nil{
        fmt.Println(err)
    }
    fmt.Println("这里还是会执行的")
}

//panic 回收测试
func deferPanic(x,y int)(z int,err error){
    //使用defer回收接收panic值
    defer func(){
        if e:=recover();e!=nil{
            err = e.(error)
            fmt.Println("看来deferPanic出错了",err)
        }
    }()
    z = x/y
    return
}
  • 注:設計値に戻りdeferPanic。可変deferPanicとdeferPanicに相当する変数宣言内の戻り値は、変数値の値を返します。
    • 理由:関数内の変数のコード定義を減らします
  • 実行順序のリターン、パニック、延期
    • エラーメッセージをキャプチャするためにパニック
    • リターンの実装
    • エラーメッセージの回復を延期
  • アプリケーション
    • エラーの場合は不明です。たとえば、次の態様の配列、マップ

おすすめ

転載: www.cnblogs.com/MyUniverse/p/11526284.html