详解 golang 中如何自定义异常捕获方法
之前PHP的异常捕获是try catch 来进行操作,golang 当前还没有很好的捕获方式,下面我们自己进行分装一下:
1. 使用常用的 try catch 方式进行分装
/**
* @desc fun 正常的方法 catch 异常处理的方法 注意:传递的都是闭包
**/
func try(fun func(),catch func(err interface{})){
defer func(){
fmt.Println("<----- start doing ----->")
if err := recover(); err != nil {
catch(err)
}
fmt.Println("<----- end done ----->")
}()
fun()
}
func main(){
//测试方法
try(func(){
fmt.Println("我们正常执行的代码")
panic("this is try to catch Error")
},func(err interface{}){
fmt.Println("捕获异常",err)
})
}
2. 自定义捕获异常的方法
/**
* @desc 自定义捕获异常的方法
**/
func throwError(error_info string,error_code int) (int , error){
msg := errors.New(error_info)
code := 500;
if error_code != 0 {
code = error_code;
}
return code,msg;
}
func main(){
//测试方法
code,err := throwError("这是自定义的一个异常",0)
if err != nil {
fmt.Println(err)
}else{
fmt.Println(code)
}
}
分装完毕,点个赞呗!
本文来自博客园,作者:Carver大脸猫,转载请注明原文链接:https://www.cnblogs.com/carver/articles/17115401.html

浙公网安备 33010602011771号