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に相当する変数宣言内の戻り値は、変数値の値を返します。
- 実行順序のリターン、パニック、延期
- エラーメッセージをキャプチャするためにパニック
- リターンの実装
- エラーメッセージの回復を延期
- アプリケーション
- エラーの場合は不明です。たとえば、次の態様の配列、マップ