package exceptions import ( "strings" ) 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 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() }