首页 >后端开发 >Golang > 正文

golang错误抛出的方法

原创2020-01-14 16:13:530689
Go语言没有提供像Java、C#语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛。

Go标准包提供的错误处理功能:

error是个interface:

type error interface {
    Error() string
}

如何创建error:

// example 1
func Sqrt(f float64) (float64, error) {
    if f < 0 {
        return 0, errors.New("math: square root of negative number")
    }
    // implementation
}

// example 2
if f < 0 {
    return 0, fmt.Errorf("math: square root of negative number %g", f)
}

如何自定义error:

// errorString is a trivial implementation of error.
type errorString struct {
    s string
}

func (e *errorString) Error() string {
    return e.s
}

go语言中一般有三种错误处理策略:

1、返回和检查错误值:通过特定值表示成功和不同的错误,上层代码检查错误的值,来判断被调用func的执行状态

2、自定义错误类型:通过自定义的错误类型来表示特定的错误,上层代码通过类型断言判断错误的类型

3、隐藏内部细节的错误处理:假设上层代码不知道被调用函数返回的错误任何细节,直接再向上返回错误

error interface 的 Error 方法的输出,是给人看的,不是给机器看的。我们通常会把Error方法返回的字符串打印到日志中,或者显示在控制台上。永远不要通过判断Error方法返回的字符串是否包含特定字符串,来决定错误处理的方式。

更多golang知识请关注golang教程栏目。

以上就是golang错误抛出的方法的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:golang
  • 本文原创发布php中文网,转载请注明出处,感谢您的尊重!
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • golang判断类型:可以使用error中Error()string来判断类型,Error()描述,在打印时调用Error()string得到描述即可判断类型
    golang中创建:创建自定义最简单是使用errors包中New函数。
    golang处理:1、通过判断值相等(如io.EOF)。2、通过断言(type assertion or type switch),判断err类型或者是否实现了某个接口。
    swoole自定义:swoole可以在ErrorHandlerInterface接口中自定义,当开启DEBUG.ENABLE时候,则自定义处理有效。
    java添加页面:先在web.xml中开启提示并连接提示页面error.jsp。然后自定义提示页面内容即可。
    php关闭警告:1、可以通过“error_reporting()”函数,将当前脚本报告级别设置为“E_ALL&~E_WARNING”级别,意思就是显示除了警告级别之外所有
    java更新时代码1603解决:1、现1603后重启系统并卸载旧版本,然后下载并安装脱机安装程序包即可。
    golang gin框架处理:1、默认处理是errors.New("信息"),这个信息通过error类型返回值进行返回。2、自定义
    golang使用panic一条信息,从它参数类型可以看到它可以任意类型信息。recover()用于将panic信息捕捉。recover必须定义在panic之前defer语句中。
    服务器中使用phpmyadmin现500解决:打开php安装目录,进入到php.ini。
    swoole获取消息发送失败:swoole中可以使用Server->send函数发送数据,发送失败会返回false,调用$server->getLastError()可以得到失败
    yii开启提示:首先打开“index-test.php”文件;然后添加代码“error_reporting(E_ALL & ~E_NOTICE);”;接着打开“main.php”文件;
    安装“java”时现1603原因是:以前安装“java”环境变量依然存在导致“jre”无安装。
    yii2查看服务器500:1、将index.php中defined('YII_DEBUG')改为define('YII_DEBUG',true)。2、将assests文件夹权限改为777。
    golang panic可以捕获标准,当遇到不可恢复状态时候,如数组访问越界、空指针引用等,这些运行时会引起panic异常。
    ThinkPHP提供了自带提示页面,但是并不美观,所以我们一般需要自定义、成功、异常提示页面,本文就来为大家介绍一下这些页面自定义
    帝国cms升级到7.0解决办:首先打开“alllistinfo_movie.php”文件;然后找到文中第9行sql语句;接着将sql语句替换成“$query="select id
    Java项目报400原因:1、前台提交字段名称或类型与后台不一致导致400。2、前端没有将提交对象转化为字符串。解决:1、保证字段名称类型一致。2、将前端传递对象转化为字符串。
    yii2默认error动作默认由site控制器下error动作来处理,对应视图页面是error.php页面,可以通过修改actions()来修改error.php页面布局文件。
    原因:现这种问题往往是因为java源文件中带有包名。解决:1、源文件中删除包名(不提倡)。2、在code下创建与包名相同文件路径结构。

    专题推荐

    推荐视频教程
  • Go编程基础视频教程Go编程基础视频教程
  • Go参考手册Go参考手册
  • Go 中文开发手册Go 中文开发手册
  • go语言基础与基本函数go语言基础与基本函数
  • 视频教程分类