Go语学习笔记 - 异常处理 | 从零开始Go语言

Go语学习笔记 - 异常处理 | 从零开始Go语言,第1张

目录

1、使用实现Error接口方式

2、使用errors的方法构建异常对象

小结 


学习笔记,写到哪是哪。

Go语言有内置的错误接口,可以通过实现接口的方式定义异常,和其他语言的try···catch语法不一样。我现在看着特别别扭。

内置的error接口如下:

type error interface {
    Error() string
}
1、使用实现Error接口方式

样例代码如下

package main

import "fmt"

type CustomError struct {
	code int
	msg  string
}

func (error *CustomError) Error() string {
	return fmt.Sprintf("Error -> code=%d,msg=%s\n", error.code, error.msg)
}

func test_intf(a, b int) (result int, errorMsg string) {
	if a > b {
		return a, ""
	} else {
		_error := CustomError{1, "a <= b"}
		return 0, _error.Error()
	}
}

func main() {
	result, msg := test_intf(10, 20)
	if result == 0 {
		fmt.Println(msg)
	} else {
		fmt.Printf("result = %d\n", result)
	}
}

执行结果

Error -> code=1,msg=a <= b 

注意

1、构建自定义的异常结构体CustomError,实现Error方法。

2、使用errors的方法构建异常对象

样例代码如下

package main

import (
	"errors"
	"fmt"
)

var errCust = errors.New("自定义异常")

func test_cust(a, b int) (int, error) {
	if b == 0 {
		return 0, errCust
	}
	return a / b, nil
}

func main() {
	if res, err := test_cust(10, 0); err != nil {
		fmt.Printf("test_cust error is %v\n", err)
	} else {
		fmt.Printf("test_cust is %d\n", res)
	}
}

执行结果

test_cust error is 自定义异常

小结 

感觉还是漏了一些东西,我后面要好好想想学习路线问题,需要停下来反思一下。

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/989664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存