go的错误处理机制跟php的完全不一样,go讲究的是:
go的错误分为3种:
1:编译时错误,在编译时抛出的错误,例如有变量未出现使用,变量未声明直接使用等,此错误是在运行之前被编译器找出报错的
2:运行时业务自行抛出的错误...(Error),此错误可以直接通过函数返回值返回,由调用栈接收处理,如果不处理则不会影响程序运行
3:通过panic 函数抛出的错误,此错误无法被调用栈拦截,但可以在之后由recover接收并忽略,但是无法恢复原来的调用栈...
自行抛出的error错误
例如:
package main
import (
"errors"
"fmt"
)
func main() {
var a, b float64
...d(float64=0)
divider: 0
panic函数抛出错误
如果你访问数组时越界,go将自动检查并调用panic抛出错误:
package main
import (
"fmt...,而不是影响上层调用
在服务器场景中,可能需要同时处理多个请求,每个请求的操作互不影响,可以通过此操作,使得请求错误之后,不会影响其他请求栈
本文为仙士可原创文章,转载无需和我联系,但请注明来自仙士可博客