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