go 自定义错误类型

 基础语法  2022-10-11  admin  422  569

go 自定义错误类型

package main

import (
	"errors"
	"fmt"
)

// MyError 自定义错误类型
type MyError struct {
	Code int
	Msg  string
}

// 实现 Error() 方法
func (h *MyError) Error() string {
	return fmt.Sprintf("status code %d: %s", h.Code, h.Msg)
}

// DoTest 测试方法
func DoTest(t int) error {
	if t == 1 {
		return &MyError{404, "not found"}
	} else if t == 2 {
		return &MyError{403, "Forbidden "}
	} else {
		return errors.New("未知错误")
	}

}

func main() {

	err := DoTest(1)

	if err != nil {
		if _, ok := err.(*MyError); ok && err.(*MyError).Code == 404 {
			fmt.Println(err.(*MyError).Code) // 404
			fmt.Println(err.(*MyError).Msg)  // not found
			fmt.Println(err)                 // status code 404: not found
		} else {
			fmt.Println(err)
		}
	}

}


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

转载必须注明出处:

go 自定义错误类型 —— code.cent123.com

相关推荐


点名工具,抽奖软件

点名工具,抽奖软件

酷炫的倒计时客户端

QQ: 425100867捐赠开发者:

go 的加减乘除运算注意事项,及相互转化问题

packagemain import( "fmt" ) funcmain(){ varintAint=10 varintBint=9 varfloatAfloat64=10 varfloatBfloat64=9 //在Go语言中,操作数的类型必须匹配。也就是说,进行运算时,操作数的类型必须一致或能够进行合理的转换。 //具体来说

AI人脸替换工具离线版V6.0 最新版下载

AI人脸替换工具离线版V6.0 最新版下载下载 解压 双击运行roop_rope_facefusion_V60.exe 文件即可下载链接:https://pan.quark.cn/s/be7953632126AI人脸替换工具离线版V6.0