ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 错误处理 dotweb支持两种方式处理程序错误 * DotWeb.ExceptionHandler * 自定义错误处理中间件 #### DotWeb.ExceptionHandler 全局设置 ~~~ app :=dotweb.New() //设置自定义异常处理接口 app.SetExceptionHandle(func(ctx dotweb.Context, err error) { ctx.WriteString("i'm error ", err.Error()) }) ~~~ 设置以上代码后,如在handler中有未处理的异常或者直接返回error,均会被该函数捕捉执行 * 我们尽量遵守go的潜规则,尽可能少的直接panic error,那么也可通过在handler函数内return error ~~~ func DefaultError(ctx dotweb.Context) error { return errors.New("i'm an error!") } ~~~ 特别的: * dotweb实现了默认的ExceptionHandle * 通过dotweb#SetDevelopmentMode、dotweb#SetProductionMode 控制异常信息展现 * 若设置为DevelopmentMode,页面将输出详细的异常堆栈信息 * 若设置为ProductionMode,页面将输出Internal Server Error字符串 #### 中间件模式 通过实现自定义中间件,recover error,对其做相应处理即可 具体可参考recover中间件。 -- 即将实现