#### 概要
刚接触GO不久,非常感兴趣,因为有PHP web开发经历,就直接上手beego 框架来重写以前的个人测试项目,遇到些问题,想咨询一下。以下是我遇到的问题
这是一个只有**api**的项目,所以在beego文档看的错误处理好像不合适(可能是我还不会用。。。)
#### 问题
一:在beego 框架**api**开发如何实现全局异常的抛出,例如我查询失败时直接返回错误信息。this.Abort方法尝试了不行
二:在尝试很多方式 我想到下面这样一个抛出异常的方式
```
//user.go
type UserController strucy {
beego.Controller
}
func (this *UserController) Add(){
//部分代码省略
userId, err := models.Add(...) // 这里简写一下,添加了一个用户,返回了自增id和错误
if err != nil {
ThrowError(this, err.Error())
}
this.Data["json"] = Success(userId) //封装了返回json数据, code=1
this.ServerJson()
}
//error.go
type JsonResult struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interfact{} `json:"data"`
}
//部分函数省略
func ThrowError(this *UserController, err string) {
this.data["json"] = Error(err) //封装json数据 code=0
this.ServerJson()
}
```
第二个问题中,ThrowError函数包含了UserController指针和err字符串两个参数,但是项目中我不只有一个Controller,这里我要做麽样的修改,可以无论传递xxController都可以呢。
*如有表达模糊不清,请多见谅,感谢回复*
有疑问加站长微信联系(非本文作者))