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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容