• panic&&error


    ...

    一点例子

     要不是考试要考,懒得看这俩货, 非高大上的项目估计用不到,提前处理下,不比用这个香

    error 就是一个接口, 一个生成错误字符串的方法,总之就是和字符串有关系

    type error interface {
        Error() string
    }
    package main
    
    import (
    	"errors"
    	"fmt"
    	"log"
    )
    
    func foo(x,y int) (int,error){
    	if y == 0 {
    		return y,errors.New("err emmit !!")
    	}
    	return x/y,nil
    }
    
    func main() {
    	fmt.Println("main begin")
    	if x,y := foo(3,2); y != nil{
    		log.Println(x,y)
    	}else {
    		log.Println(x,y)
    	}
    	//log.Println(foo(3,2))
    	fmt.Println("main exit")
    }
    

    ...

    panic 会翻车, 可以恢复

    package main
    
    import (
    	"fmt"
    )
    
    func foo(){
    	defer func(){
    		if err := recover(); err != nil {
    			fmt.Println(err)
    		}
    	}()
    	var bar = []int{1}
    	fmt.Println(bar[1])
    }
    
    func main(){
    	foo()
    	fmt.Println("exit")
    }
    

      

  • 相关阅读:
    Redis笔记
    java多线程 interrupt(), interrupted(), isInterrupted()方法区别
    策略模式
    外观模式
    Java线程池原理与架构分析
    状态模式
    模板方法模式
    LeetCode | Path-Sum
    实用工具
    IDEA springboot配置
  • 原文地址:https://www.cnblogs.com/eiguleo/p/14959408.html
Copyright © 2020-2023  润新知