解决自定义异常消息无法透出问题

解决自定义异常消息无法透出问题
This commit is contained in:
白茶清欢 2023-08-19 10:42:37 +08:00
parent 16920b714d
commit f674702ad2
2 changed files with 14 additions and 11 deletions

11
code.go
View File

@ -102,9 +102,12 @@ func MessageWithoutCode() {
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 21:16 2022/6/25 // Date : 21:16 2022/6/25
func getMessage(code interface{}) string { func getMessage(code interface{}, defaultMessage ...string) string {
inputCodeInfo, exist := codeTable[code] inputCodeInfo, exist := codeTable[code]
if !exist { if !exist {
if len(defaultMessage) > 0 && len(defaultMessage[0]) > 0 {
return defaultMessage[0]
}
// 无论是否开启 messageWithCode , 未知错误强行带 code // 无论是否开启 messageWithCode , 未知错误强行带 code
return fmt.Sprintf("未知错误【%v】", code) return fmt.Sprintf("未知错误【%v】", code)
} }
@ -123,8 +126,8 @@ func getMessage(code interface{}) string {
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 12:58 2022/6/26 // Date : 12:58 2022/6/26
func GetMessage(code interface{}) string { func GetMessage(code interface{}, defaultMessage ...string) string {
return getMessage(code) return getMessage(code, defaultMessage...)
} }
// GetCodeList ... // GetCodeList ...
@ -153,7 +156,7 @@ func GetCodeTable() map[interface{}]Code {
func getReason(code interface{}) string { func getReason(code interface{}) string {
inputCodeInfo, exist := codeTable[code] inputCodeInfo, exist := codeTable[code]
if !exist { if !exist {
return getMessage(code) return getMessage(code, "")
} }
return inputCodeInfo.Reason[defaultLanguage] return inputCodeInfo.Reason[defaultLanguage]
} }

View File

@ -65,7 +65,7 @@ func (e *Exception) ToError() error {
// //
// Date : 21:22 2022/6/25 // Date : 21:22 2022/6/25
func NewWithCode(code interface{}) IException { func NewWithCode(code interface{}) IException {
return New(code, defaultHttpCode, nil) return New(code, defaultHttpCode, nil, "")
} }
// NewWithCodeAndHttpCode 使用 code + http_code 获取实例 // NewWithCodeAndHttpCode 使用 code + http_code 获取实例
@ -74,7 +74,7 @@ func NewWithCode(code interface{}) IException {
// //
// Date : 21:25 2022/6/25 // Date : 21:25 2022/6/25
func NewWithCodeAndHttpCode(code interface{}, httpCode int) IException { func NewWithCodeAndHttpCode(code interface{}, httpCode int) IException {
return New(code, httpCode, nil) return New(code, httpCode, nil, "")
} }
// NewWithCodeAndData 使用 code + data 获取异常实例 // NewWithCodeAndData 使用 code + data 获取异常实例
@ -83,7 +83,7 @@ func NewWithCodeAndHttpCode(code interface{}, httpCode int) IException {
// //
// Date : 21:28 2022/6/25 // Date : 21:28 2022/6/25
func NewWithCodeAndData(code interface{}, data interface{}) IException { func NewWithCodeAndData(code interface{}, data interface{}) IException {
return New(code, defaultHttpCode, data) return New(code, defaultHttpCode, data, "")
} }
// New 获取异常实例 // New 获取异常实例
@ -91,14 +91,14 @@ func NewWithCodeAndData(code interface{}, data interface{}) IException {
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
// //
// Date : 21:28 2022/6/25 // Date : 21:28 2022/6/25
func New(code interface{}, httpCode int, data interface{}) IException { func New(code interface{}, httpCode int, data interface{}, defaultMessage ...string) IException {
if nil == data { if nil == data {
// 保证数据结构的一致性, 同时避免后续使用出现空指针 // 保证数据结构的一致性, 同时避免后续使用出现空指针
data = map[string]interface{}{} data = map[string]interface{}{}
} }
return &Exception{ return &Exception{
code: code, code: code,
message: getMessage(code), message: getMessage(code, defaultMessage...),
httpCode: httpCode, httpCode: httpCode,
data: data, data: data,
} }
@ -115,7 +115,7 @@ func NewFromError(code interface{}, err error) IException {
} }
return New(code, defaultHttpCode, map[string]interface{}{ return New(code, defaultHttpCode, map[string]interface{}{
"error": err.Error(), "error": err.Error(),
}) }, err.Error())
} }
// NewFromMessage 从 code message 生成exception // NewFromMessage 从 code message 生成exception
@ -157,5 +157,5 @@ func IsSuccess(e *Exception) bool {
// //
// Date : 22:35 2022/6/25 // Date : 22:35 2022/6/25
func NewSuccess(data interface{}) IException { func NewSuccess(data interface{}) IException {
return New(defaultSuccessCode, defaultHttpCode, data) return New(defaultSuccessCode, defaultHttpCode, data, "")
} }