Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh menangkap dan menyimpan surih tindanan daripada panik dalam Go?
Mendapatkan dan Menyimpan Jejak Tindanan daripada Panik
Sementara panik menjana surih tindanan bermaklumat kepada output standard, maklumat mungkin hilang apabila pulih daripada panik menggunakan pulih (). Walau bagaimanapun, adalah mungkin untuk menangkap dan menyimpan surih tindanan untuk penyahpepijatan dipertingkatkan.
Pakej masa jalan/nyahpepijat menawarkan penyelesaian untuk mendapatkan surih tindanan. Begini cara ia boleh digunakan:
package main import ( "fmt" "runtime/debug" ) func main() { // Function to recover from panics and capture stacktraces defer func() { if r := recover(); r != nil { // Convert the stacktrace bytes into a string fmt.Println("Stacktrace from panic: \n" + string(debug.Stack())) } }() var mySlice []int // Generate panic j := mySlice[0] fmt.Printf("Hello, playground %d", j) }
Penyelesaian ini mencetak surih tindanan berikut:
Stacktrace from panic: goroutine 1 [running]: runtime/debug.Stack(0x1042ff18, 0x98b2, 0xf0ba0, 0x17d048) /usr/local/go/src/runtime/debug/stack.go:24 +0xc0 main.main.func1() /tmp/sandbox973508195/main.go:11 +0x60 panic(0xf0ba0, 0x17d048) /usr/local/go/src/runtime/panic.go:502 +0x2c0 main.main() /tmp/sandbox973508195/main.go:16 +0x60
Dengan memanfaatkan pakej masa jalan/nyahpepijat, anda boleh menangkap dan menyimpan surih tindanan dengan berkesan, membolehkan lebih banyak penyahpepijatan menyeluruh apabila panik berlaku dalam aplikasi Go anda.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menangkap dan menyimpan surih tindanan daripada panik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!