GO语言学习---chapter13

第13章   错误处理及检测    20180629

go认为java和.net的try  catch finally 那一套太损耗性能,所以函数返回时一般含有错误参数

error 是一个预定义的接口,只需要实现Error()函数即可

type  error interface {

    Error() string 

}

引用errors包,新增一个error只需要errors.New(error_string)

可以自定义error类型以获取必要的信息

可以用switch语句对错误类型进行判断,以做出正确的决定

switch err := err.(type) {

case ErrorType1:

            process1()

case ErrorType2:

            process2()

default:

            blablabla()

}

if e, ok := err.(*os.PathError) ; ok {

            process()

}

使用fmt构造错误对象

使用fmt.Errorf() 方法

if  f < 0 {

        return 0 , fmt.Errorf("math : square root of negative number %g",f) 

}

panic 的使用

panic用于比较严重的错误,在错误不可修复的情况产生一个runtime.error来阻止程序的继续执行

go  panicking : 如果panic发生在嵌套的函数调用过程中,它会立即停止当前函数的执行,所有的defer函数将保证执行完毕,程序的控制前递交给函数的调用方

Recover

你可能感兴趣的:(GO语言学习---chapter13)