From 11bd661e7919f3834fca7720e8b8aecd062d4cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Sat, 17 Jun 2023 10:43:51 +0800 Subject: [PATCH] =?UTF-8?q?enahnce(error):=E5=A2=9E=E5=BC=BA=E6=9C=AA?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=AE=8C=E6=88=90=E6=93=8D=E4=BD=9C=E7=9A=84?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=8F=8F=E8=BF=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exceptions/unsuccessful.go | 129 +++++++++++++++++++++++++++++++++++-- 1 file changed, 124 insertions(+), 5 deletions(-) diff --git a/exceptions/unsuccessful.go b/exceptions/unsuccessful.go index 0309658..f2623a0 100644 --- a/exceptions/unsuccessful.go +++ b/exceptions/unsuccessful.go @@ -1,11 +1,130 @@ package exceptions -type UnsuccessfulOperationError struct{} +import ( + "strings" +) -func NewUnsuccessfulOperationError() *UnsuccessfulOperationError { - return &UnsuccessfulOperationError{} +type OperationType int16 + +const ( + OPERATE_CREATE OperationType = iota + OPERATE_UPDATE + OPERATE_DELETE + OEPRATE_QUERY + OPERATE_CALCULATE + OPERATE_DB + OPERATE_DB_TRANSACTION + OPERATE_CUSTOM OperationType = 98 + OPERATE_OTHER OperationType = 99 +) + +type UnsuccessfulOperationError struct { + Operate OperationType + Description string + Message string } -func (UnsuccessfulOperationError) Error() string { - return "操作不成功。" +func NewUnsuccessfulOperationError(oeprate OperationType, describe, message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: oeprate, + Description: describe, + Message: message, + } +} + +func NewUnsuccessCreateError(message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OPERATE_CREATE, + Message: message, + } +} + +func NewUnsuccessUpdateError(message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OPERATE_UPDATE, + Message: message, + } +} + +func NewUnsuccessDeleteError(message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OPERATE_DELETE, + Message: message, + } +} + +func NewUnsuccessQueryError(message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OEPRATE_QUERY, + Message: message, + } +} + +func NewUnsuccessCalculateError(message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OPERATE_CALCULATE, + Message: message, + } +} + +func NewUnsuccessDBError(message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OPERATE_DB, + Message: message, + } +} + +func NewUnsuccessDBTransactionError(message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OPERATE_DB_TRANSACTION, + Message: message, + } +} + +func NewUnsuccessCustomError(describe, message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OPERATE_CUSTOM, + Description: describe, + Message: message, + } +} + +func NewUnsuccessOtherError(message string) *UnsuccessfulOperationError { + return &UnsuccessfulOperationError{ + Operate: OPERATE_OTHER, + Message: message, + } +} + +func (e UnsuccessfulOperationError) Error() string { + var builder strings.Builder + switch e.Operate { + case OPERATE_CREATE: + builder.WriteString("创建") + case OPERATE_UPDATE: + builder.WriteString("更新") + case OPERATE_DELETE: + builder.WriteString("删除") + case OEPRATE_QUERY: + builder.WriteString("查询") + case OPERATE_CALCULATE: + builder.WriteString("计算") + case OPERATE_DB: + builder.WriteString("数据库") + case OPERATE_DB_TRANSACTION: + builder.WriteString("数据库事务") + case OPERATE_CUSTOM: + builder.WriteString(e.Description) + case OPERATE_OTHER: + builder.WriteString("其他") + default: + builder.WriteString("未知") + } + builder.WriteString("操作不成功,") + if len(e.Message) > 0 { + builder.WriteString(e.Message) + } else { + builder.WriteString("未知原因") + } + return builder.String() }