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

Go学习第十天

打印报错堆栈信息

安装errors包

go get github.com/pkg/errors

具体使用

// 新生成一个错误, 带堆栈信息
func New(message string) error//只附加新的信息
func WithMessage(err error, message string) error//只附加调用堆栈信息
func WithStack(err error) error//同时附加堆栈和信息
func Wrap(err error, message string) error

堆栈打印

// 功能一样,输出错误信息,不包含堆栈
%s,%v 
// 输出的错误信息带引号,不包含堆栈
%q 
// 输出错误信息和堆栈
%+v 
如:
fmt.Println(fmt.Sprintf("%s", err))
fmt.Println(fmt.Sprintf("%q", err))
fmt.Println(fmt.Sprintf("%+v", err))

演示WithStack方法,其他省略:

// 例子
package mainimport ("fmt""github.com/pkg/errors"
)func main() {result, err := Divide(10, 0)if err != nil {fmt.Println(fmt.Sprintf("error1: %v", err))fmt.Println(fmt.Sprintf("error2: %s", err))fmt.Println(fmt.Sprintf("error3: %q", err))fmt.Println(fmt.Sprintf("error4: %+v", err))} else {fmt.Println("result:", result)}
}func Divide(a, b int) (int, error) {if b == 0 {return 0, errors.WithStack(errors.New("division can not 0"))} else {return a / b, nil}
}
http://www.lryc.cn/news/148639.html

相关文章:

  • pytorch中 nn.Conv2d的简单用法
  • 前端项目工程化之代码规范
  • MyBaits Generator
  • JavaWeb 速通Ajax
  • vscode c++编译时报错
  • 基于体系结构架构设计-架构真题(十五)
  • IPv6网络实验:地址自动生成与全球单播通信探索
  • 深入探索前端之道:JavaScript深拷贝与浅拷贝的解析与实现
  • 关于两个不同数据库的两张表建立数据库链接,关联查询数据
  • Google登录SDK
  • ASP.NET Core 8 的运行环境 Environment
  • 机械臂手眼标定ZED相机——眼在手外python、matlab
  • 前端实现动态路由(前端控制全部路由,后端返回用户角色)
  • Spring5学习笔记—Spring事务处理
  • 如何增长LLM推理token,从直觉到数学
  • 《穷爸爸与富爸爸》时间是最宝贵的资产,只有它对所有人都是公平的
  • Git结合Gitee的企业开发模拟
  • WEBGL(2):绘制单个点
  • C# task多线程创建,暂停,继续,结束使用
  • 界面控件DevExpress WinForms(v23.2)下半年发展路线图
  • vue实现按需加载的多种方式
  • el-switch组件在分页情况下的使用
  • 【100天精通python】Day49:python web编程_web框架,Flask的使用
  • sql 查重以及删除重复
  • Flux语言 -- InfluxDB笔记二
  • 18.Oauth2-微服务认证
  • vue和node使用websocket实现数据推送,实时聊天
  • 汽车电子笔记之:基于AUTOSAR的多核监控机制
  • GDB 源码分析 -- 断点源码解析
  • SpringMVC概述与简单使用