### 错误处理
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中间件。 -- 即将实现