是的,Go語言允許你自定義錯(cuò)誤碼。你可以通過實(shí)現(xiàn)error
接口來創(chuàng)建自定義錯(cuò)誤類型,并在其中定義自己的錯(cuò)誤碼。下面是一個(gè)簡(jiǎn)單的示例:
package main
import (
"fmt"
)
// 自定義錯(cuò)誤類型
type CustomError struct {
Code int
Message string
}
// 實(shí)現(xiàn)error接口的Error()方法
func (e *CustomError) Error() string {
return fmt.Sprintf("code: %d, message: %s", e.Code, e.Message)
}
// 自定義錯(cuò)誤函數(shù)
func customFunction() error {
// 根據(jù)條件返回不同的自定義錯(cuò)誤
if true {
return &CustomError{Code: 400, Message: "Bad Request"}
}
return nil
}
func main() {
err := customFunction()
if err != nil {
// 類型斷言,將error轉(zhuǎn)換為*CustomError類型
if customErr, ok := err.(*CustomError); ok {
fmt.Println("自定義錯(cuò)誤碼:", customErr.Code)
fmt.Println("自定義錯(cuò)誤信息:", customErr.Message)
} else {
fmt.Println("未知錯(cuò)誤:", err)
}
} else {
fmt.Println("操作成功")
}
}
在這個(gè)示例中,我們定義了一個(gè)名為CustomError
的自定義錯(cuò)誤類型,它包含一個(gè)錯(cuò)誤碼(Code
)和一個(gè)錯(cuò)誤信息(Message
)。我們還實(shí)現(xiàn)了error
接口的Error()
方法,以便我們可以將自定義錯(cuò)誤類型與內(nèi)置的錯(cuò)誤處理機(jī)制一起使用。
在customFunction
函數(shù)中,我們根據(jù)條件返回不同的自定義錯(cuò)誤。在main
函數(shù)中,我們使用類型斷言將error
轉(zhuǎn)換為*CustomError
類型,以便我們可以訪問自定義錯(cuò)誤碼和錯(cuò)誤信息。