Golang 将错误信息输出到标准错误流(stderr)
fmt.Fprintln(os.Stderr, err) 是 Go 语言中的一行代码,用于将错误信息输出到标准错误流(stderr)。
该代码使用了 fmt 包中的 Fprintln 函数,函数签名如下:
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
其中,w 是一个实现了 io.Writer 接口的对象,用于指定输出的目标流。
os.Stderr 表示标准错误流,它是一个 *os.File 类型的对象,可以用于输出错误信息。
err 是一个错误值,它会被打印到标准错误流。
示例代码:
package main
import (
"fmt"
"os"
)
func main() {
err := someFunctionThatReturnsAnError()
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
}
func someFunctionThatReturnsAnError() error {
// 假设这里发生了一个错误
return fmt.Errorf("发生了一个错误")
}
在上述示例中,someFunctionThatReturnsAnError 函数返回一个错误,然后在 main 函数中进行错误检查。如果错误不为空,则将错误信息输出到标准错误流。这样可以将错误信息显示在终端或日志中,以便进行调试和错误处理。
PS E:\TEXT\test> go run .\main.go
发生了一个错误
PS E:\TEXT\test>
最后捕获异常
defer func() {
if err := recover(); err != nil {
fmt.Println(err)
}
}()
defer func() {
if r := recover(); r != nil {
// 在这里处理 panic 错误
fmt.Println("发生异常:", r)
}
}()