0
我有一个结构,有一个方法,为响应服务。很无聊,处理错误
type ctrl struct {
*base.AjaxCtrl
file ini.File
}
func (rcv *ctrl) getVar() string {
return mux.Vars(rcv.Req)["location"]
}
func (rcv *ctrl) getFile() string {
return location.JoinPaths(folder, rcv.getVar()+ext)
}
func (rcv *ctrl) upload() {
file, err := ini.LoadFile(rcv.getFile())
if err != nil {
rcv.AddErr("TextError", err.Error())
return
}
rcv.file = file
}
// Convert text to json structure
func (rcv *ctrl) convertToJson() string {
js, err := json.Marshal(rcv.file.Section("text/signup"))
if err != nil {
rcv.AddErr("ConvertError", err.Error())
return ""
}
return string(js)
}
func (rcv *ctrl) serveHttp() (types.SuccsJSON, types.ErrorsJSON) {
rcv.upload()
if rcv.AnyErrors() {
return nil, rcv.Errs
}
str := rcv.convertToJson()
if rcv.AnyErrors() {
return nil, rcv.Errs
}
return c.Sucss, nil
}
方法serveHttp()处理对客户端的响应。正如你所看到的,我每次都用AnyError()方法处理错误。我发现这种方式很无聊,也许是错误的设计。 抛开恐慌而不是错误处理会更好吗?
func (rcv *ctrl) upload() {
file, err := ini.LoadFile(rcv.getFile())
if err != nil {
rcv.AddErr("TextError", err.Error())
panic()
}
rcv.file = file
}
[Go language中的错误处理](http://stackoverflow.com/questions/28409118/error-handling-in-go-language) – icza 2015-02-11 12:37:13
非常感谢。 – 2015-02-11 12:46:28
因为GoLang放弃了例外,所以我放弃了GoLang。 – Vector 2015-02-12 07:27:50