Golang模仿try&catch
作者:
池边树下 | 来源:发表于
2020-09-09 16:13 被阅读0次package main
import (
"fmt"
)
type tryFunc func()
type catchFunc func(interface{})
// 建立一個模仿 try&catch 的函式供稍後使用
func Try(try tryFunc, catch catchFunc) {
// 這不會馬上被執行,但當 panic 被執行就會結束程式,結束程式就必定會呼叫 defer
defer func() {
// 透過 recover 來從 panic 狀態中恢復,並呼叫捕捉函式
if err := recover(); err != nil {
catch(err)
}
}()
// 執行可能帶有 panic 的程式
try()
}
func main() {
Try(func() {
panic("1") //报错之后不会下一步
panic("2")
}, func(a interface{}) {
fmt.Println(a)
})
}
本文标题:Golang模仿try&catch
本文链接:https://www.haomeiwen.com/subject/txneektx.html
网友评论