当前位置: 首页 > news >正文

Go语言——error、panic

一、error基本使用

package mainimport ("errors""fmt"
)// 自定义Error
type NetError struct {errorIsLink bool // 是否网络连接错误IsAddr bool // 是否地址错误
}
type MyError struct {code intmsg  string
}func (e MyError) Error() string {return e.msg
}func (e MyError) IsLink() bool {return true
}func (e MyError) IsAddr() bool {return true
}var ErrNotFound = errors.New("not found")func main() {data, err := Find(1)data1, err1 := Find(2)if err != nil && !errors.Is(err, ErrNotFound) {return}if data == 0 {// set}if e, ok := err1.(*MyError); ok && e.IsLink() && e.IsAddr() {// 重试fmt.Println(err1.(*MyError).msg, data1)}fmt.Println("程序结束")
}func do() error {return errors.New("test err")
}func Find(id int) (int, error) {if id == 1 {return 0, ErrNotFound}if id == 2 {return 2, &MyError{code: -20001,msg:  "id不能为2",}}return id, nil
}

二、panic使用

package mainimport ("fmt""runtime""time"
)func main() {go func() {defer func() {if err := recover(); err != nil {fmt.Println("err = ", err)const size = 64 << 10buf := make([]byte, size)buf = buf[:runtime.Stack(buf, false)]fmt.Printf("Stack trace:\n%s\n", buf)}}()var names []stringfmt.Println(names[0])}()time.Sleep(time.Second * 10)
}
http://www.xdnf.cn/news/321427.html

相关文章:

  • 解决0x0000011b共享打印机无法连接!
  • 泛型设计模式实践
  • 初始图形学(7)
  • 2025-05-07-FFmpeg视频裁剪(尺寸调整,画面比例不变)
  • 系统思考:教育焦虑恶性循环分析
  • C语言初阶:数组
  • DeepSeek全域智能革命:从量子纠缠到星际文明的认知跃迁引言:认知边界的坍缩与重构
  • 解决leetcode第3537题填充特殊网格
  • CSS详细学习笔记
  • eclipse常用快捷键
  • Jmeter进行http接口测试
  • 使用VSCode在Windows 11上编译运行项目
  • 005 权限的理解
  • Linux上将conda环境VLLM服务注册为开机自启
  • Java 常用的 ORM框架(对象关系映射)
  • 企业级AI革命!私有化部署开源大模型:数据安全+自主可控,打造专属智能引擎
  • Ubuntu20.04安装使用ROS-PlotJuggler
  • 【MCP】客户端配置(ollama安装、qwen2.5:0.5b模型安装、cherry-studio安装配置)
  • C#与Halcon联合编程
  • 迁移学习:如何加速模型训练和提高性能
  • 锁相环HMC830的调试
  • 缓存替换算法与存储器管理的分页、分段、段页式管理联系
  • http Status 400 - Bbad request 网站网页经常报 HTTP 400 错误,清缓存后就好了的原因
  • 办公学习 效率提升 超级PDF处理软件 转换批量 本地处理
  • android 折叠屏开发适配全解析:多窗口、铰链处理与响应式布局
  • 回溯进阶(一):以全排列问题为例,来展示如何对回溯的纵向和横向进行操作
  • C++ 有哪些标准版本
  • eFish-SBC-RK3576工控板音频接口测试操作指南
  • ElementUI 表格el-table自适应高度设置
  • RISC-V架构深度解析