go 异常处理

go中的异常处理机制

为了保证程序不会因为一个异常而导致停摆,同时又不像其它语言那么啰嗦,对go语言的异常机制的简单理解实践一下吧

package main

import "fmt"

func divide(a int,b int,isPanic bool) int  {
    //,类似于 java try catch ,,通过panic抛出异常 recover 捕获,
    if isPanic{
        defer func() {
            if err := recover(); err != nil{
                fmt.Println(err)
            }
        }()
    }
  //可以自行捕获异常,自定义异常信息
    /*if b==0{
        panic("除数不能等于0")
    }*/
    c := a/b
    return c
}

func main() {
    divide(3,0,true)
    fmt.Println("我的天,一切运转正常")
}

Out1:

runtime error: integer divide by zero
我的天,一切运转正常

Out2:

自定义异常信息
除数不能等于0
我的天,一切运转正常

如果没有recover,程序不能正常往下执行,就此打住了;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。