golang自定义error
2024-10-08 14:43:33
系统自身的error处理一般是 errors.New()或fmt.Errorf()等,对一些需要复杂显示的,不太友好,我们可以扩展下error。
error在标准库中被定义为一个接口类型,该接口只有一个Error()方法
type error interface {
Error() string
}
那么,自定义error只要拥有Error()方法,就实现了error接口,这里我们用结构体来扩展
package errors
import (
"encoding/json"
)
type Err struct {
Code int
Msg string
}
func (e *Err) Error() string {
err, _ := json.Marshal(e)
return string(err)
}
func New(code int, msg string) *Err {
return &Err{
Code: code,
Msg: msg,
}
}
调用
func main(){
fmt.Println(errors.New(401,"无此权限"))
}
最新文章
- 写给自己:修改配置文件一定要cp一个.bak
- Objective-C快速上手
- Httpclient请求数据(post)
- [转]Android开发:Parallax效果的ScrollerView,改编自ParallaxListView
- git的配置
- xcode 路径
- 集群(cluster)原理(转)
- Android安卓开发中图片缩放讲解
- La=LaULb (单链表)
- UVA 257 - Palinwords(弦HASH)
- poj1872A Dicey Problem
- hdu_1506:Largest Rectangle in a Histogram 【单调栈】
- BZOJ.4144.[AMPPZ2014]Petrol(Kruskal重构树)
- 主席树 || 可持久化线段树 || LCA || BZOJ 2588: Spoj 10628. Count on a tree || Luogu P2633 Count on a tree
- Java之String、StringBuilder、StringBuffer的区别
- How do I debug a published XBAP file in VS2010?
- VNC的安装和常用命令
- Go语言学习笔记五: 条件语句
- Hadoop 组成
- C#代码审查工具 StyleCop