溫馨提示×

Go中怎么遍歷和處理錯誤堆棧

go
小億
115
2024-04-03 09:37:02
欄目: 編程語言

在Go語言中可以使用errors.New()函數創建一個新的錯誤,并使用fmt.Errorf()函數格式化錯誤信息。Go中的錯誤處理通常采用if語句結構,通過判斷錯誤是否為nil來處理錯誤。

以下是一個示例代碼,演示如何遍歷和處理錯誤堆棧:

package main

import (
	"errors"
	"fmt"
)

func main() {
	err := doSomething()
	if err != nil {
		fmt.Println("Error:", err)
		// 打印錯誤的堆棧信息
		fmt.Printf("%+v\n", err)
	}
}

func doSomething() error {
	err := doSomethingElse()
	if err != nil {
		return fmt.Errorf("doSomething failed: %w", err)
	}
	return nil
}

func doSomethingElse() error {
	return errors.New("something went wrong")
}

在上面的示例中,doSomethingElse()函數返回一個新創建的錯誤。在doSomething()函數中調用doSomethingElse()函數,如果doSomethingElse()函數返回錯誤,則在doSomething()函數中將其包裝為一個新的錯誤,然后返回。在main()函數中調用doSomething()函數并判斷返回的錯誤是否為nil,如果不為nil,則打印錯誤信息和堆棧信息。

使用%+v參數可以打印錯誤的完整堆棧信息。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女