(15)Go错误处理
1.erro(一般错误)
package main
import (
"errors"
"fmt"
)
func div(a, b int) (res int) {
if b == 0 {
err := errors.New("分母不能为0")
println(err.Error())
} else {
res = a/b
}
return
}
func main() {
res := div(10,0)
fmt.Println(res)
}
2.panic(宕机)
package main
import (
"fmt"
)
func div(a, b int) (res int) {
if b == 0 {
panic("分母不能为0") // 在这宕机 后面程序不执行了
} else {
res = a/b
}
return
}
func main() {
res := div(10,0)
fmt.Println(res)
}
3.recover(恢复错误)
package main
import (
"fmt"
)
func div(a, b int) (res int, err error) {
defer func() { // 发生错误时恢复
if e := recover(); e != nil {
err = fmt.Errorf("err: %v", e)
}
}()
if b == 0 {
panic("分母不能为0") // 在这宕机 后面程序不执行了
} else {
res = a / b
}
return
}
func main() {
res, err := div(10, 0)
fmt.Println(err.Error())
fmt.Println(res)
}
(15)Go错误处理的更多相关文章
- Xrm.Utility.openEntityForm 时404.15 maxQueryString 错误 和 长度超过maxQueryStringLength值 错误
最近的项目里用到Xrm.Utility.openEntityForm 创建新记录时分别碰到以下错误: 以及 这两个错误都是因为想传递给表单的参数太多导致的url 查询参数太长导致的,前者是因为iis的 ...
- JDBC 连接 MySQL 8.0.15+ 常见错误记录
课后复习 1. No suitable driver found for mysql:jdbc://localhost:3306/test 错误原因: mysql:jdbc://localhost:3 ...
- WCF分布式开发步步为赢(15):错误契约(FaultContract)与异常处理(ExceptionHandle)
今天学习WCF分布式开发步步为赢系列的15节:错误契约(FaultContract)与异常处理(ExceptionHandle).本节内容作为WCF分布式开发的一个重要知识点,无论在学习还是项目中都应 ...
- C和指针 第十五章 错误报告perror和exit
15.1 错误报告 perror 任何一种程序都存在出错的可能,包括系统的函数库,当出现错误时,系统提示发生错误,标准库函数在一个外部整型变量中保存错误代码,然后把错误代码传给用户程序,提示错误原因. ...
- ubuntu安装php常见错误集锦
一.configure 报错 1.错误类型: Configure: error: Please reinstall the libcurl distribution-easy.h should be ...
- 安装ipvsadm时出现下面所示错误,MARK
[root@localhost ipvsadm-1.26]# makemake -C libipvsmake[1]: Entering directory `/usr/local/soft/ipvsa ...
- PHP错误日志和内存查看
1.通过命令查看服务器上一共开了多少的 php-cgi 进程: ps -fe |grep "php-fpm"|grep "pool"|wc -l 2.查看FPM ...
- 提高效率!15款最好的 Bug 跟踪应用程序
当涉及到开发项目时,其中比较重要的事情是它需要某种形式的错误和问题跟踪工具来发现和解决问题,否则会浪费大量的时间. 此外,你总是要标签应用来标示那些悬而未决的问题,而这种分期执行的项目进度将帮助您 ...
- java项目中初期常见的错误及解决方案
在做项目的初期,想必总会有各种奇奇葩葩的错误出现,本博文主要整理了博主在项目初期遇到的错误,希望能为大家减少犯这些错误 1.Env 名字写错了,图片中错误类型是名字没有发现的异常,因此需要检查后面报错 ...
随机推荐
- java之spring之对象的创建
首先提供目录结构如下: 下面提供各文件代码,以供参考: UserDynamicFactory.java package cn.sxt.factory; import cn.sxt.vo.User; / ...
- python 基础(集合)
#set里的元素是唯一的,即没有重复的,可以用set()函数,去数据的重复冗余 L = [1,1,1,2,4,5,6,7] S = set(L) print(S) #打印结果{1, 2, 4, 5, ...
- Docker 安装 MySQL 学习笔记
https://www.runoob.com/docker/docker-install-mysql.html #docker search mysql #docker pull mysql:5.6 ...
- pandas-06 Series和Dataframe的排序操作
pandas-06 Series和Dataframe的排序操作 对pandas中的Series和Dataframe进行排序,主要使用sort_values()和sort_index(). DataFr ...
- 【转载】如何查看sqlserver客户端的版本号信息
在sqlserver的使用过程中,有时候可能会因为sqlserver版本过低等原因的导致无法附加以及还原数据库,我们可以通过sql server management studio软件的帮助菜单参看到 ...
- MVC、MVP及MVVM之间的关系
介绍 写这篇随笔完全是为了加深自己的印象,毕竟写比看能获得得更多,另外本人对这三种模式的认识还是浅薄的,有待在以后的工作学习中有更深入的理解,因此不免会有误解,这里推荐大家阅读廖雪峰关于MVVM的介绍 ...
- PHP 两个比较运算符 [??] [?:] 差别
1.[??] NULL 合并操作符$a ?? $b即isset($a) ? $a : $b; 注:isset() 已设置并且不为NULL 2.[?:] 三元运算符的简写形式$a ?: $b即$a ? ...
- .net core jenkins持续集成
执行 Shell pwd ls echo ${PATH} whoami which dotnet dotnet --info dotnet --version echo '============== ...
- MYSQL使用source命令,导入SQL文件
命令 source D:/student.sql
- Shell: sh,bash,csh,tcsh等shell的区别(转)
转载自:http://zhidao.baidu.com/question/493376840.html, http://blog.sina.com.cn/s/blog_71261a2d0100wmbj ...