系统自身的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,"无此权限"))
}

最新文章

  1. 写给自己:修改配置文件一定要cp一个.bak
  2. Objective-C快速上手
  3. Httpclient请求数据(post)
  4. [转]Android开发:Parallax效果的ScrollerView,改编自ParallaxListView
  5. git的配置
  6. xcode 路径
  7. 集群(cluster)原理(转)
  8. Android安卓开发中图片缩放讲解
  9. La=LaULb (单链表)
  10. UVA 257 - Palinwords(弦HASH)
  11. poj1872A Dicey Problem
  12. hdu_1506:Largest Rectangle in a Histogram 【单调栈】
  13. BZOJ.4144.[AMPPZ2014]Petrol(Kruskal重构树)
  14. 主席树 || 可持久化线段树 || LCA || BZOJ 2588: Spoj 10628. Count on a tree || Luogu P2633 Count on a tree
  15. Java之String、StringBuilder、StringBuffer的区别
  16. How do I debug a published XBAP file in VS2010?
  17. VNC的安装和常用命令
  18. Go语言学习笔记五: 条件语句
  19. Hadoop 组成
  20. C#代码审查工具 StyleCop

热门文章

  1. js把树形数据转成扁平数据
  2. Java JDK 1.5 1.6 1.7 新特性整理
  3. Hadoop学习2—伪分布式环境搭建
  4. Java中Volatile关键字详解(转载)
  5. 第八届极客大挑战 Web-php绕过
  6. python之requests库使用
  7. python __双划线 参数
  8. Jmeter进行分布式性能测试
  9. java中对于多态的一个实例分析
  10. techiediaries网站的Laravel 6系列教程