1.错误处理

  如果要写出健壮 ,易维护的代码 ,错误处理就是关键 ,考虑到可能会发生的意外对其进行处理

  go的错误处理与众不同 ,在调用可能出现问题的方法和函数时都会返回一个类型为error的值 ,由调用者去决定如何处理错误

  错误是一个值类型error ,零值为nil

2.接受错误类型

  可能文件资源不存在

 package main

 import (
"fmt"
"io/ioutil"
) func main() {
text,err := ioutil.ReadFile("fuben.go")
if err == nil {
fmt.Println(err)
}
fmt.Printf("%s",text)
}

3.创建错误

  errors.New("提示")

 package main

 import (
"errors"
"fmt"
) func main() {
err := errors.New("出现错误")
if err != nil {
fmt.Println(err)
}
}

  fmt.Errof()          #格式化创建错误

 package main

 import (
"fmt"
) func main() {
name,role := "屈冠文","admin"
err:=fmt.Errorf("%v is not permission %v",name,role)
if err != nil{
fmt.Println(err)
}
}

4.从函数和方法返回错误

  在签名处定义好error返回类型

 package main

 import (
"fmt"
"strconv"
) func EvenNumber(num int) (string, error) { //多返回值括号括起来
if num% != {
err := fmt.Errorf("%v不是偶数", num)
return "", err
}
return strconv.Itoa(num) + "是偶数", nil
} func main() {
a :=
b :=
c :=
ret, err := EvenNumber(a)
fmt.Println(ret, err)
ret, err = EvenNumber(b)
fmt.Println(ret, err) //这里直接打印了异常
ret, err = EvenNumber(c)
fmt.Println(ret, err)
}

5.painc

  错误中断程序运行 ,谨慎使用 ,当出现painc立即中断程序 (当错误无法解决或继续执行造成更多错误时使用)

 package main

 import "fmt"

 func main() {
fmt.Println("")
panic("出现问题,中止")
fmt.Println("")
}

    

  

golang-错误处理的更多相关文章

  1. Golang错误和异常处理的正确姿势

    Golang错误和异常处理的正确姿势 错误和异常是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从 ...

  2. 【GoLang】GoLang 错误处理 -- 使用异常的思路进行处理

    go处理错误的另一种方式 go处理错误常见的方式是 err := funcReturningError() if err != nil { // 处理错误 } 然而因为过于繁琐而饱受诟病.下文简述另一 ...

  3. GOLANG错误处理最佳方案errors wrap, Defer, Panic, and Recover

    Simple error handling primitives:        https://github.com/pkg/errors Defer, Panic, and Recover:    ...

  4. golang 错误处理与异常

    原文地址 golang 中的错误处理的哲学和 C 语言一样,函数通过返回错误类型(error)或者 bool 类型(不需要区分多种错误状态时)表明函数的执行结果,调用检查返回的错误类型值是否是 nil ...

  5. 【GoLang】GoLang 错误处理 -- 异常处理思路示例

    代码: package main import ( "fmt" // "testing" ) var Pkg = "packageName" ...

  6. 【GoLang】GoLang 错误处理 -- 官方推荐方式 示例

    最严谨的方式,Always检查error,并做相应的处理 项目结构: 代码: common.go: package common import ( "github.com/pkg/error ...

  7. 【GoLang】GoLang 错误处理 -- 使用 error is value 的思路处理,检查并处理error

    吐血推荐: https://dave.cheney.net/2016/04/27/dont-just-check-errors-handle-them-gracefully 参考资料: https:/ ...

  8. Golang错误处理函数defer、panic、recover、errors.New介绍

    在默认情况下,当发生错误(panic)后,程序就会终止运行 如果发生错误后,可以捕获错误,并通知管理人员(邮件或者短信),程序还可以继续运行,这当然无可厚非 errors.New("错误信息 ...

  9. golang错误处理机制:panic与recover

    原文地址:http://www.niu12.com/article/14 panic知识点 package main import ( "fmt" "github.com ...

  10. golang错误处理

    1. 错误 错误用内建的error类型来表示. type error interface { Error() string } error 有了一个签名为 Error() string 的方法.所有实 ...

随机推荐

  1. python操作文件——序列化pickling和JSON

    当我们在内存中定义一个dict的时候,我们是可以随时修改变量的内容的: >>> d=dict(name='wc',age=28) >>> d {'name': 'w ...

  2. springmvc: No converter found for return value of type

    刚开始学习springmvc的童鞋,相信很多都需要过这种情况,报错信息如下 org.springframework.http.converter.HttpMessageNotWritableExcep ...

  3. 使用百度大脑iOCR,快速自定义机票行程单模板识别

    1. 功能介绍百度已经推出了iOCR财会票据识别,针对财会报销场景提出的专项解决方案,可对各类财务票据.报销单.银行回单.对账单进行自动分类及结构化识别,并支持用户为固定版式的新票据/单据自定义结构化 ...

  4. redhat 常用命令记录

    开机设置网络信息: vim /etc/rc.local 然后在里面输入设置信息   ifconfig eth0:0 192.168.127.130 netmask 255.255.255.0 up i ...

  5. 精通awk系列(13):print、printf、sprintf和重定向

    回到: Linux系列文章 Shell系列文章 Awk系列文章 输出操作 awk可以通过print.printf将数据输出到标准输出或重定向到文件. print print elem1,elem2,e ...

  6. Information Management System

    Information Management System 一.代码部分 #include <stdio.h> #include <stdlib.h> #include < ...

  7. 【30天自制操作系统】day04:C语言与目前执行流程图

    用 C 语言直接写入内存 原来依靠汇编 void io_hlt(void); void write_mem8(int addr, int data); void HariMain(void){ int ...

  8. mysql-两种方式安装

    一.数据库版本 MySQL 常见版本 MySQL Community Server 社区版本,开源免费,但不提供官方技术支持. MySQL Enterprise Edition 企业版本,需付费,可以 ...

  9. Snack3 之 Jsonpath使用

    Snack3 之 Jsonpath使用 一. Snack3 和 JSONPath 介绍 Snack3 是一个支持JSONPath的JSON框架.JSONPath是一个很强大的功能,也可以在Java框架 ...

  10. 简洁优雅的Python教你如何在工作中“偷懒”

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: A字头 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...