Golang 优雅的错误处理

golang中经常需要判断 err 是否为 nil,经常占用3行的代码, 影响代码的美观, 如:

if err != nil{
    // do something
}

那么如何编写较为美观实用的 err 判断代码呢?

  1. 实现错误处理函数 HandleErr

package utils

import "log"

// 处理错误
func HandleErr(err error, msg string, handler func(err error, msg string)) {
    if err != nil && handler != nil {
        handler(err, msg)
    }
}

// 仅 panic
func HandleErrPanic(err error, msg string) {
    panic(err)
}

// 仅输出日志
func HandleErrLogger(err error, msg string) {
    log.Println("msg", msg, "err", err) // 换成自己项目中的日志调用
}

// 输出日志并 panic
func HandleErrLoggerPanic(err error, msg string) {
    HandleErrLogger(err, msg)
    HandleErrPanic(err, msg)
}
  1. 使用

func TestErr(t *testing.T) {
    defer Recover()

    err := errors.New("模拟错误!")                                  // 错误发生
    utils.HandleErr(err, "查询。。。失败", utils.HandleErrLoggerPanic) // 错误判断

}

func Recover() {
    if r := recover(); r != nil {
        log.Println("恢复异常", r)
    }
}
  1. 输出的内容
    2024/09/18 01:06:54 msg 查询。。。失败 err 模拟错误!
    2024/09/18 01:06:54 恢复异常 模拟错误!

可见, 在业务代码中, 仅需一行就够判断错误, 简化了业务代码,

本文由 上传。


如果您喜欢这篇文章,请点击链接 Golang 优雅的错误处理 查看原文。


您也可以直接访问:https://www.fanfine.cn/blog/180

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇