Go错误处理(二)
type error interface{Error()string}
func Foo(param int)(n int,err error){//函数定义}n,err:=Foo(0)if err!=nil{//错误处理}else{//使用返回值n}
- 定义一个承载错误信息的struct
type PathErrorstruct{op stringpath stringErr error}
- 定义Error方法
func (e *PathError)Error()string{return e.op+" "+e.path+":"+e.Err.Error()}
func CopyFile(dst, src string){defer fmt.Println(dst)defer fmt.Println(src)fmt.Println("copy")}
copy
c:\2.txt
c:\oem8.txt
panic:相当于throw,recover:相当于catch
defer func(){//必须要先声明defer,否则不能捕获到panic异常if err := recover(); err !=nil{fmt.Println(err)//这里的err其实就是panic传入的内容,55}}()f()func f(){fmt.Println("a")panic(55)fmt.Println("b")}
输出为
a
55
这里panic后面的fmt.Println("b")未被执行,所以后面的信息没有b
Go错误处理(二)的更多相关文章
- Tomcat运行错误示例二
Tomcat运行错误示例二 当遇到这种错误时,一般是构建路径的问题,按步骤来就好.如图: 点击---->库---->Add Library---->下一步---->选择tomc ...
- Android编程容易犯的错误之二
11.不要太相信工具,比如Eclipse里面的断点遇到多线程什么,经常不起作用/走不到,还有就是如果语句为空的也不会走,这时候别太早下结论断点地方出错了, 所以每个工程都应该有日志的开关,通过查看日志 ...
- ios block常见的错误(二)——循环引用
这篇博文继续block的常见错误——循环引用. 循环引用是很多初学者不能察觉的,其产生的原因,是block中的代码会对对象进行强引用. 读者请阅读示例代码1,并思考示例代码1所创建的对象能否被正常销毁 ...
- [Python学习]错误篇二:切换当前工作目录时出错——FileNotFoundError: [WinError 3] 系统找不到指定的路径
REFERENCE:<Head First Python> ID:我的第二篇[Python学习] BIRTHDAY:2019.7.13 EXPERIENCE_SHARING:解决切换当前工 ...
- Spring+dubbo错误(二)
ERROR [TestContextManager.java:231] Caught exception while allowing TestExecutionListener [org.sprin ...
- klee错误汇报二:KLEE的optimize选项的一个困惑
问题已经提交github:https://github.com/klee/klee/issues/650 在一个对命令行参数进行建模的符号执行过程中,添加optimize选项与不添加optimize选 ...
- JavaScript学习笔记(二)——闭包、IIFE、apply、函数与对象
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...
- JavaScript学习总结(二)——闭包、IIFE、apply、函数与对象
一.闭包(Closure) 1.1.闭包相关的问题 请在页面中放10个div,每个div中放入字母a-j,当点击每一个div时显示索引号,如第1个div显示0,第10个显示9:方法:找到所有的div, ...
- HTTPS那些事(二)SSL证书(转载)
原创地址:http://www.guokr.com/post/116169/ 从第一部分HTTP工作原理中,我们可以了解到HTTPS核心的一个部分是数据传输之前的握手,握手过程中确定了数据加密的密 ...
- 【读书笔记】iOS网络-错误处理的经验法则
一,在接口契约中处理错误. 二,错误状态可能不正确. 设备模糊地确认操作是崇拜失败的.比如,移动应用发出HTTP请求以在两个账户间转账.请求被银行系统接收并正确地处理:然而,由于网络失败应答却丢失了, ...
随机推荐
- clapack在android上移植
参考 https://www.cnblogs.com/hrlnw/p/4128217.html 如何在android上进行android库编译 https://blog.csdn.net/h3c4le ...
- 3D Face Reconstruction
方法1 Large Pose 3D Face Reconstruction from a Single Image via Direct Volumetric CNN Regression http: ...
- WEB打印大全
1.控制"纵打". 横打”和“页面的边距. (1)<script defer> function SetPrintSettings() { // -- advance ...
- 【转】【Nginx】Nginx 入门教程 + 常用配置解析
== Nginx介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx以其高性能.稳定.功能丰富.配置简单 ...
- 【转载】Exchange 2010配置与安装实用手册
Exchange 2010配置与安装实用手册 在Exchange 2010配置的时候主要分三大部分,这分别是网络配置.准备存储以及相关的安装策略和过程.同时还需要注意和其他的Windows软件相协调. ...
- WFA 认证 启动 sigma_dut方法
WFA认证需要启动sigma_dut,记录记录一下启动过程. Android O平台命令如下 adb shell svc wifi disable adb shell rmmod wlan adb s ...
- 使用ClaimsIdentity来实现登录授权
背景:以前做登录时用的都是FormsAuthentication.SetAuthCookie(model.UID, IsRemeber),但是有一个不好,不能存储多个值,有时候我们既想存储登录用户的U ...
- CentOS 6.9编译安装Erlang
转自http://www.jb51.net/article/59823.htm 这篇文章主要介绍了CentOS 6.5源码安装Erlang教程,本文讲解了源码编译安装的过程和遇到的一些错误处理方法,需 ...
- Python——getpass
getpass模块提供了可移植的密码输入,一共包括下面两个函数: 1. getpass.getpass() 2. getpass.getuser() getpass.getpass([prompt[, ...
- 推荐个office能在线预览的插件
1.chrome office viewer 这个可以离线使用 2.微软 office web app 可以使用微软在线服务器或则自己搭建服务器 有兴趣的朋友百度一下具体操作方法