github.com/gogf/gf@v1.16.9/errors/gcode/gcode.go (about)

     1  // Copyright GoFrame gf Author(https://goframe.org). All Rights Reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the MIT License.
     4  // If a copy of the MIT was not distributed with this file,
     5  // You can obtain one at https://github.com/gogf/gf.
     6  
     7  // Package gcode provides universal error code definition and common error codes implements.
     8  package gcode
     9  
    10  // Code is universal error code interface definition.
    11  type Code interface {
    12  	// Code returns the integer number of current error code.
    13  	Code() int
    14  
    15  	// Message returns the brief message for current error code.
    16  	Message() string
    17  
    18  	// Detail returns the detailed information of current error code,
    19  	// which is mainly designed as an extension field for error code.
    20  	Detail() interface{}
    21  }
    22  
    23  // ================================================================================================================
    24  // Common error code definition.
    25  // There are reserved internal error code by framework: code < 1000.
    26  // ================================================================================================================
    27  
    28  var (
    29  	CodeNil                      = localCode{-1, "", nil}                            // No error code specified.
    30  	CodeOK                       = localCode{0, "OK", nil}                           // It is OK.
    31  	CodeInternalError            = localCode{50, "Internal Error", nil}              // An error occurred internally.
    32  	CodeValidationFailed         = localCode{51, "Validation Failed", nil}           // Data validation failed.
    33  	CodeDbOperationError         = localCode{52, "Database Operation Error", nil}    // Database operation error.
    34  	CodeInvalidParameter         = localCode{53, "Invalid Parameter", nil}           // The given parameter for current operation is invalid.
    35  	CodeMissingParameter         = localCode{54, "Missing Parameter", nil}           // Parameter for current operation is missing.
    36  	CodeInvalidOperation         = localCode{55, "Invalid Operation", nil}           // The function cannot be used like this.
    37  	CodeInvalidConfiguration     = localCode{56, "Invalid Configuration", nil}       // The configuration is invalid for current operation.
    38  	CodeMissingConfiguration     = localCode{57, "Missing Configuration", nil}       // The configuration is missing for current operation.
    39  	CodeNotImplemented           = localCode{58, "Not Implemented", nil}             // The operation is not implemented yet.
    40  	CodeNotSupported             = localCode{59, "Not Supported", nil}               // The operation is not supported yet.
    41  	CodeOperationFailed          = localCode{60, "Operation Failed", nil}            // I tried, but I cannot give you what you want.
    42  	CodeNotAuthorized            = localCode{61, "Not Authorized", nil}              // Not Authorized.
    43  	CodeSecurityReason           = localCode{62, "Security Reason", nil}             // Security Reason.
    44  	CodeServerBusy               = localCode{63, "Server Is Busy", nil}              // Server is busy, please try again later.
    45  	CodeUnknown                  = localCode{64, "Unknown Error", nil}               // Unknown error.
    46  	CodeNotFound                 = localCode{65, "Not Found", nil}                   // Resource does not exist.
    47  	CodeInvalidRequest           = localCode{66, "Invalid Request", nil}             // Invalid request.
    48  	CodeBusinessValidationFailed = localCode{300, "Business Validation Failed", nil} // Business validation failed.
    49  )
    50  
    51  // New creates and returns an error code.
    52  // Note that it returns an interface object of Code.
    53  func New(code int, message string, detail interface{}) Code {
    54  	return localCode{
    55  		code:    code,
    56  		message: message,
    57  		detail:  detail,
    58  	}
    59  }