golang中的异常处理和异常使用

1.go语言中没有其他语言中的try/catch机制

2.在go语言中可以使用panic来抛出异常,使用recover方法来处理异常,通常recover方法写在每个方法defer模块中,在方法return前执行处理

func panic(n interface{})/入参是个空接口意味着可以传递任意类型


func recover() interface{}//反参是空接口意味着可以返回任意类型

3.go语言中的异常接口

type  error  interface{
  Error()
}

如果要使用创建该接口的实例只需要使用结构体实现该接口的Error的方法即可,go中内置了创建接口实例的方法

errors.new("异常信息")//返回的是error接口实例,接口中方法重写Error方法返回的是,字符串异常信息


fmt.Errorf()

4.开发中的常用技巧

type error struct {
	code    int
	message string
}

func (e error) Error() string {
	return fmt.Sprintf("error:", e.code)
}
func main() {
	defer func() {
		i := recover()
		e, ok := i.(error)
		if ok {
			if e.code == 1 {
				fmt.Println(e.message)
			}
		}
	}()
	panic(error{1, "FGDDGFGD"})

你可能感兴趣的:(golang,golang,开发语言,后端)