golang如何实现try catch的功能

    go没有try..catch很不习惯,于是写了这么个简单的小包,用来模拟try...catch

package main
import (
	"fmt"
	. "github.com/haitgo/my-pkg/try"
)
 
func test1() {
	Throw("Error2", "02")
}
func test2() {
	d := 0
	c := 3 / d
	fmt.Println(c)
}
func main() {
	Try(func() {
		Try(func() {
			test1()
			panic("This is Default Panic")
			Throw("Error1", "01")
			Throw("Error2", "02")
			Throw("Error3", "03")
		}).Catch("Error1", func(e Exception) {
			fmt.Println("Error1 Catched:", e)
		}).Catch("Error2", func(e Exception) {
			fmt.Println("Error2 Catched:", e)
		}).Default(func(e Exception) {
			fmt.Println("Default Catch:", e)
		})
	}).Catch("Error3", func(e Exception) {
		fmt.Println("Error3 Catched:")
	}).DefaultEnd(func(e Exception) {
		fmt.Println("Final Catch", e)
	})
}

  代码在这里下载

https://github.com/haitgo/my-pkg/tree/master/try

你可能感兴趣的:(golang,try)