Bagaimana untuk Menyimpan Stacktraces Panik dalam Go?

DDD
Lepaskan: 2024-11-19 16:14:02
asal
471 orang telah melayarinya

How to Store Panic Stacktraces in Go?

Mengambil dan Menyimpan Susun Tindanan Panik

Panik dalam Go menghasilkan surih tindanan berharga yang memberikan cerapan penyahpepijatan. Walau bagaimanapun, pemulihan daripada panik hanya mengembalikan mesej ralat yang tidak mempunyai maklumat peringkat baris terperinci.

Untuk menangani had ini, pakej masa jalan/nyahpepijat menawarkan penyelesaian. Begini cara anda boleh menyimpan surih tindanan daripada panik sebagai pembolehubah:

package main

import (
    "fmt"
    "runtime/debug"
)

func main() {
    defer func() {
        if r := recover(); r != nil {
            stacktrace := string(debug.Stack())
            fmt.Println("Stacktrace from panic:", stacktrace)
        }
    }()

    var mySlice []int
    j := mySlice[0] // panic

    fmt.Printf("Hello, playground %d", j) // unreachable code
}
Salin selepas log masuk

Output:

Stacktrace from panic:
goroutine 1 [running]:
runtime/debug.Stack(0x1042ff18, 0x98b2, 0x17d048, 0x17d1c0)
    /usr/local/go/src/runtime/debug/stack.go:24 +0xc0
main.main.func1()
    /tmp/sandbox973508195/main.go:11 +0x60
panic(0x17d048, 0x17d1c0)
    /usr/local/go/src/runtime/panic.go:665 +0x260
main.main()
    /tmp/sandbox973508195/main.go:16 +0x60
Salin selepas log masuk

Kod ini menunjukkan cara untuk menangkap surih tindanan sekiranya berlaku panik, menyediakan butiran baris demi baris yang memudahkan penyahpepijatan yang berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Stacktraces Panik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan