From 96b70d161ab94e90984f092d7bdd8f690c550f1e Mon Sep 17 00:00:00 2001 From: smallnest Date: Sun, 21 Apr 2024 14:36:46 +0800 Subject: [PATCH] add #66 --- README.md | 2 +- src/066.md | 33 +++++++++++++++++++++++++++++++++ src/SUMMARY.md | 1 + src/images/066/1.png | Bin 0 -> 12958 bytes src/images/066/2.png | Bin 0 -> 14023 bytes 5 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 src/066.md create mode 100644 src/images/066/1.png create mode 100644 src/images/066/2.png diff --git a/README.md b/README.md index 108603c..1d1d432 100644 --- a/README.md +++ b/README.md @@ -112,7 +112,7 @@ Go tips from [Phuong Le](https://twitter.com/func25). | 63 | | | | 64 | | | | 65 | Returning Pointers Made Easy with Generics | miniLCT | -| 66 | | | +| 66 | Simplify Your Error Messages in fmt.Errorf | smallnest | | 67 | How to deal with long function signatures | richzw | | 68 | Use the deadcode tool to find and remove unused functions | richzw | | 69 | Manage multiple goroutines with errgroup | richzw | diff --git a/src/066.md b/src/066.md new file mode 100644 index 0000000..e76b63e --- /dev/null +++ b/src/066.md @@ -0,0 +1,33 @@ +# Tip #66 在fmt.Errorf中简化你的错误信息 + +> 原始链接:[Golang Tip #66: Simplify Your Error Messages in fmt.Errorf](https://twitter.com/func25/status/1775481695594291238) +> + +在Go语言中,当我们处理错误时,提供足够的详细信息以便了解问题的具体原因是非常重要的。 + +之前有一个提示,即 Go Tips#38,专门讨论了这个问题。我们可以通过访问以下链接获取更多上下文信息:[tips#38](https://colobu.com/gotips/038.html) + +(感谢 `@thedenisnikulin` 提供的额外建议,我们可以进一步改进错误处理方式。) + +现在,我们应该熟悉使用 `fmt.Errorf` 函数以及 `%w` 来包裹(wrap)错误的做法: + +![](./images/066/1.jpeg) + +通常情况下,我们可能会得到一个像这样的长错误消息: + +"error while crawling: can't retrieve log: failed to open file server-logs.txt: file not exist."" + +这个消息虽然清晰,但比实际所需冗长,因为它重复了一些诸如“error while”、“failed to”这样的短语,而我们知道我们在处理错误时,这些前置词汇是可以省略的。 + +因此,这里有一种更好的做法: + +![](./images/066/2.jpeg) + +注意到不同之处了吗? + +相比于冗长的消息,我们得到的是更简洁、更直接的内容: +"crawling: retrieve log: open file server-logs.txt: file not exist."" + +这条消息仍然清楚地告诉你错误发生时正在进行的操作,并且更容易阅读。 + +因此,在Go语言中编写错误消息时,要保持简短,重点突出未能成功执行的动作。 \ No newline at end of file diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 65e5cda..4f99d99 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -17,6 +17,7 @@ - [Tip #47 表驱动测试,测试集和并行运行测试](./047.md) - [Tip #71 用泛型让 sync.Pool 类型安全](./071.md) - [Tip #65 使用泛型返回指针](./065.md) +- [Tip #66 在fmt.Errorf中简化你的错误信息](./066.md) - [Tip #67 如何处理长函数签名](./067.md) - [Tip #68 使用deadcode工具来找到和删除无用的函数](./068.md) - [Tip #69 通过errgrup管理多个goroutine](./069.md) diff --git a/src/images/066/1.png b/src/images/066/1.png new file mode 100644 index 0000000000000000000000000000000000000000..55ebedde97b84a137821665f867a300717179be0 GIT binary patch literal 12958 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 I!tm$+08(NjFaQ7m literal 0 HcmV?d00001 diff --git a/src/images/066/2.png b/src/images/066/2.png new file mode 100644 index 0000000000000000000000000000000000000000..1d612b056c09f88a02c157d586165d5d2312ab4a GIT binary patch literal 14023 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 D3B(fq literal 0 HcmV?d00001