企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Exception 框架异常处理,支持两种方式处理程序错误 * DotWeb.ExceptionHandler * 自定义错误处理中间件 本节主要描述通过设置DotWeb.ExceptionHandler来自定义处理异常。 ## 服务端 ~~~go package main import ( "errors" "fmt" "github.com/devfeel/dotweb" "strconv" ) func main() { //初始化DotServer app := dotweb.New() //初始化App必要设置 InitApp(app) //设置路由 InitRoute(app.HttpServer) // 开始服务 port := 8080 fmt.Println("dotweb.StartServer => " + strconv.Itoa(port)) err := app.StartServer(port) fmt.Println("dotweb.StartServer error => ", err) } func PanicError(ctx dotweb.Context) error { panic("my panic error!") } func ReturnError(ctx dotweb.Context) error { return errors.New("return new error") } // InitRoute init routes func InitRoute(server *dotweb.HttpServer) { server.Router().GET("/panic", PanicError) server.Router().GET("/return", ReturnError) } // InitApp init app's setting func InitApp(app *dotweb.DotWeb) { //设置自定义异常处理接口 app.SetExceptionHandle(func(ctx dotweb.Context, err error) { //TODO:you can use your owner logging error message ctx.WriteString("oh, 系统出错了! ", err.Error()) }) } ~~~ 启动服务后 1、访问 http://127.0.0.1:8080/panic 返回如下: ~~~ oh, 系统出错了! my panic error! ~~~ 2、访问http://127.0.0.1:8080/return 返回如下: ~~~ oh, 系统出错了! return new error ~~~ 以上,通过设置ExceptionHandle自动处理panic或者返回的error信息 ## 示例代码 https://github.com/devfeel/dotweb-example/blob/master/exception