读书人

http服务中应用闭包避免程序崩溃

发布时间: 2013-08-01 15:23:18 作者: rapoo

http服务中使用闭包避免程序崩溃

func safeHandler(fn http.HandlerFunc) http.HandlerFunc {

??? return func(w http.ResponseWriter, r *http.Request) {

??????? defer func() {

?????????? if e, ok := recover().(error); ok {

???????????????? //错误处理

?????????? }

??????? }

??????? fn(w, r)

??? }

}

?

说明:

safeHandler方法接收业务处理函数作为参数,同时调用这个业务处理函数,该业务逻辑处理函数执行完毕后,safeHandler方法中的defer指定的匿名函数就会执行,检测是否有错误

读书人网 >编程

热点推荐