zouLearn

导航

统计

Go语言的错误处理机制

Go 错误处理

基本语法

error的定义

Go 语言通过内置的错误接口提供了非常简单的错误处理机制。

error类型是一个接口类型,这是它的定义:

type error interface {
Error() string
}

我们可以在编码中通过实现 error 接口类型来生成错误信息。

函数通常在最后的返回值中返回错误信息。使用errors.New 可返回一个错误信息:

返回错误信息

func Sqrt(f float64) (float64, error) {
if f < 0 {
return 0, errors.New("math: square root of negative number")
}
// 实现
}

例子

以下代码出错

package main
import (
"fmt"
)
func main() {
num1:=10
num2:=0
res:=num1/num2
fmt.Printf("res:%v\n", res)
}

image-20221007160439630

package main
import (
"fmt"
)
func main() {
test()
}
func test(){
//使用defer+recover处理异常
defer func (){
err:=recover() //recover 是一个内置函数
if err !=nil{
fmt.Printf("err=", err)
}
}()
num1:=10
num2:=0
res:=num1/num2
fmt.Printf("res:%v\n", res)
}

Go语言中处理异常

defer

defer是golang提供的关键字,在函数或者方法执行完成,返回之前调用。
每次defer都会将defer函数压入栈中,调用函数或者方法结束时,从栈中取出执行,所以多个defer的执行顺序是先入后出。

panic (抛出异常)

recover(捕获异常)

recover 是一个内置函数

posted on   zou_IT  阅读(33)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示