记录项目开发中Go写法的代码优化。
定制化error
在项目开发中,我们不想直接暴露系统底层的错误,同时常规的error无法满足项目精细化的处理,我们经常会对error通过code进行分类。故定义如下:
1 | // Error |
使用
1 | // new |
基于Error扩展出部分常用的方法:
401 Unauthorized
1
2
3
4// Unauthorized generates a 401 error.
func Unauthorized(format string, v ...interface{}) *Error {
return New(http.StatusUnauthorized, fmt.Sprintf(format, v...))
}403 Forbidden
1
2
3
4// Forbidden generates a 403 error.
func Forbidden(format string, v ...interface{}) *Error {
return New(http.StatusForbidden, fmt.Sprintf(format, v...))
}404 NotFound
1
2
3
4// NotFound generates a 404 error.
func NotFound(format string, v ...interface{}) *Error {
return New(http.StatusNotFound, fmt.Sprintf(format, v...))
}405 MethodNotAllowed
1
2
3
4// MethodNotAllowed generates a 405 error.
func MethodNotAllowed(format string, v ...interface{}) *Error {
return New(http.StatusMethodNotAllowed, fmt.Sprintf(format, v...))
}408 Timeout
1 | // Timeout generates a 408 error. |
- 500 InternalServer
1
2
3
4// InternalServerError generates a 500 error.
func InternalServer(format string, v ...interface{}) *Error {
return New(http.StatusInternalServerError, fmt.Sprintf(format, v...))
}
- 本文作者: Hongker
- 本文链接: https://hongker.github.io/2020/03/30/Golang代码优化01/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!