golang中的异常如何捕获?
1.java中有try。。。catch 捕获异常并handle,golang中是什么机制?
主要有三个概念:defer 使用recover前提声明 recover捕获异常 panic异常
/**
捕获异常
**/
func DeferFunc(o *beego.Controller) {
if e := recover(); e != nil {
logs.Error(" 错误 %s\r\n", e)
Return(o, nil, e)
}
}
/**
抛出异常
**/
func (it *EvtAccidentController) Add() {
DeferFunc(&it.Controller)
accident := new(model.EvtAccident)
data := it.Ctx.Input.RequestBody
if data != nil {
if err := json.Unmarshal(data, &accident); err != nil {
panic(err)
}
validations := accident.Validation(nil)
if validations != nil {
Return(&it.Controller, validations, errors.New("验证没通过"))
} else {
i, e := evtAccidentService.EvtAccidentInsert(accident)
Return(&it.Controller, i, e)
}
} else {
panic(errors.New("json数据不存在"))
}
}
转载于:https://www.cnblogs.com/jiyang2018/p/11243850.html
到此这篇关于“golang中的异常如何捕获?”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!您可能感兴趣的文章:
golang中的异常如何捕获?
关于panic、defer、recover的异常捕获
php异常捕获try catch实例解析
java 7中捕获多个异常示例分析
Golang panic 异常捕获
recover 没有捕获异常_GO语言异常处理机制panic和recover分析
python如何处理捕获的异常
python如何判断网页元素是否存在
Golang面试题总结
Python traceback模块:获取异常信息