码迷,mamicode.com
首页 > 其他好文 > 详细

golang-错误处理

时间:2019-10-28 20:41:45      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:view   fun   color   eve   opened   执行   def   panic   code   

1.错误处理

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

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

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

2.接受错误类型

  可能文件资源不存在

技术图片
 1 package main
 2 
 3 import (
 4     "fmt"
 5     "io/ioutil"
 6 )
 7 
 8 func main() {
 9     text,err := ioutil.ReadFile("fuben.go")
10     if err == nil {
11         fmt.Println(err)
12     }
13     fmt.Printf("%s",text)
14 }
View Code

3.创建错误

  errors.New("提示")

技术图片
 1 package main
 2 
 3 import (
 4    "errors"
 5    "fmt"
 6 )
 7 
 8 func main() {
 9    err := errors.New("出现错误")
10    if err != nil {
11       fmt.Println(err)
12    }
13 }
View Code

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

技术图片
 1 package main
 2 
 3 import (
 4    "fmt"
 5 )
 6 
 7 func main() {
 8    name,role := "屈冠文","admin"
 9    err:=fmt.Errorf("%v is not permission %v",name,role)
10    if err != nil{
11       fmt.Println(err)
12    }
13 }
View Code

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

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

技术图片
 1 package main
 2 
 3 import (
 4    "fmt"
 5    "strconv"
 6 )
 7 
 8 func EvenNumber(num int) (string, error) { //多返回值括号括起来
 9    if num%2 != 0 {
10       err := fmt.Errorf("%v不是偶数", num)
11       return "", err
12    }
13    return strconv.Itoa(num) + "是偶数", nil
14 }
15 
16 func main() {
17    a := 12
18    b := 13
19    c := 18
20    ret, err := EvenNumber(a)
21    fmt.Println(ret, err)
22    ret, err = EvenNumber(b)
23    fmt.Println(ret, err)   //这里直接打印了异常
24    ret, err = EvenNumber(c)
25    fmt.Println(ret, err)
26 }
View Code

5.painc

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

技术图片
1 package main
2 
3 import "fmt"
4 
5 func main() {
6     fmt.Println("1")
7     panic("出现问题,中止")
8     fmt.Println("2")
9 }
View Code

 

    

  

golang-错误处理

标签:view   fun   color   eve   opened   执行   def   panic   code   

原文地址:https://www.cnblogs.com/quguanwen/p/11755166.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!