zoukankan      html  css  js  c++  java
  • 异常处理

    异常处理:  使用 defer,panic,recover

    go中抛出一个panic异常,然后在defer中通过recover捕获这个异常,进行处理

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    
    	defer func() {
    		err := recover()
    		if err != nil {
    			fmt.Println("错误提示:",err)
    			fmt.Println("进行错误处理 ......")
    		}
    	}()
    
    	num1 := 10
    	num2 := 0
    	res := num1 / num2
    	fmt.Println("计算结果:",res)
    
    }
    

    自定义报错:  使用errors.New 和 panic 内置函数

    errors.New("错误说明"),会返回一个error类型的值,表示一个错误

    panic内置函数,接收一个interface{}类型的值作为参数(可以是任何值),可以接收error类型的变量,输出错误信息,并退出程序。

    package main
    
    import (
    	"fmt"
    	"errors"
    )
    
    func readConf(name string) (err error) {
    	
    	if name == "config.ini" {
    		return nil
    	} else {
    		return errors.New("读取文件失败.....")
    	}
    }
    
    func test() {
    
    	// 处理自定义报错
    	defer func() {
            err := recover()
            if err != nil {
                fmt.Println("错误提示:",err)
                fmt.Println("进行错误处理 ......")
            }
        }()
    
    	err1 := readConf("lalalalala")
    	if err1 != nil {
    		panic(err1)
    	}
    	fmt.Println("test继续执行")
    }
    
    func main() {
    	test()
    	fmt.Println("main执行完毕")
    }
    

      

    package main

    import (
        "fmt"
        "errors"
    )

    func readConf(name string) (err error) {
        
        if name == "config.ini" {
            return nil
        } else {
            return errors.New("读取文件失败.....")
        }
    }

    func test() {

        // 处理自定义报错
        defer func() {
            err := recover()
            if err != nil {
                fmt.Println("错误提示:",err)
                fmt.Println("进行错误处理 ......")
            }
        }()

        err1 := readConf("lalalalala")
        if err1 != nil {
            panic(err1)
        }
        fmt.Println("test继续执行")
    }

    func main() {
        test()
        fmt.Println("main执行完毕")
    }
  • 相关阅读:
    express4.x socket
    validator
    服务管理,Dll查看
    复制程序,获取系统信息
    TCP HelloWord
    UDP HelloWord
    [置顶] 一个小马
    注册表编辑
    服务的启动与停止
    自下载运行
  • 原文地址:https://www.cnblogs.com/yizhixiaowenzi/p/14647637.html
Copyright © 2011-2022 走看看