ErrorHandler¶
默认配置下,有error发生时,会返回 HTTP 500 错误.
你可以通过 ErrorHandler 来定制行为:
func (i *ServiceInitializer) InitService(s turbo.Servable) error {
+ s.RegisterComponent("errorHandler", errorHandler)
return nil
}
+var errorHandler turbo.ErrorHandlerFunc = func (resp http.ResponseWriter, req *http.Request, err error) {
+ resp.Write([]byte("from errorHandler:" + err.Error()))
+}
编辑 “yourservice/service.yaml”:
+errorhandler: errorHandler
重启并测试(修改 “SayHello” 方法的代码,让它返回了一个error):
$ curl -w "\n" "http://localhost:8081/hello?your_name=zx"
from errorHandler:rpc error: code = Unknown desc = error!