Rumah > pembangunan bahagian belakang > Golang > Pergi Panik: Bagaimana untuk Menyahpepijat 'Alamat Memori Tidak Sah atau Nyahrujuk Penunjuk Tiada' Ralat?

Pergi Panik: Bagaimana untuk Menyahpepijat 'Alamat Memori Tidak Sah atau Nyahrujuk Penunjuk Tiada' Ralat?

Linda Hamilton
Lepaskan: 2024-12-21 04:45:10
asal
693 orang telah melayarinya

Go Panic: How to Debug

Pergi: Panik: Ralat Masa Jalan: Alamat Memori Tidak Sah atau Penolakan Penunjuk Nil

Soalan:

Apabila melaksanakan program Go, saya menghadapi perkara berikut panik:

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x38 pc=0x26df]

goroutine 1 [running]:
main.getBody(0x1cdcd4, 0xf800000004, 0x1f2b44, 0x23, 0xf84005c800, ...)
        /Users/matt/Dropbox/code/go/scripts/cron/fido.go:65 +0x2bb
main.getToken(0xf84005c7e0, 0x10)
        /Users/matt/Dropbox/code/go/scripts/cron/fido.go:140 +0x156
main.main()
        /Users/matt/Dropbox/code/go/scripts/cron/fido.go:178 +0x61
Salin selepas log masuk

Walaupun cuba menangkap ralat, saya tidak dapat mengenal pasti puncanya. Program ini berjalan pada mesin tanpa akses kepada pelayan API yang disenaraikan dalam kod, tetapi saya menjangkakan tindak balas ralat yang sesuai.

Bolehkah anda membantu saya dalam menyelesaikan isu ini?

Jawapan :

Panik mungkin disebabkan oleh mengakses res.Body sebelum menyemak ralat bukan nol dalam kaedah klien.Do(). Menurut dokumentasi untuk func (*Client) Do, ralat dikembalikan jika disebabkan oleh dasar klien atau ralat protokol HTTP. Walau bagaimanapun, respons bukan 2xx tidak menyebabkan ralat dan medan resp.Body masih mengandungi nilai bukan nol.

Untuk menyelesaikan isu itu, semak ralat itu serta-merta selepas memanggil klien.Do():

res, err := client.Do(req)

if err != nil {
    return nil, err
}
defer res.Body.Close()
Salin selepas log masuk

Atas ialah kandungan terperinci Pergi Panik: Bagaimana untuk Menyahpepijat 'Alamat Memori Tidak Sah atau Nyahrujuk Penunjuk Tiada' Ralat?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan