Ralat Masa Jalan: Alamat Memori Tidak Sah atau Penyingkiran Penunjuk Nil dalam Perangkak Web
Ralat ini biasanya dihadapi apabila bekerja dengan penunjuk dan alamat memori dalam Pergi program. Dalam konteks rangkak web, ia boleh timbul kerana beberapa sebab.
Punca Potensi:
Menganalisis Kod:
Kod Go yang disediakan melibatkan dua fungsi pengambilan web: advancedFetcher dan basicFetcher . Kedua-dua fungsi bertujuan untuk mengambil data daripada URI dan menghantar semula kod status melalui saluran c.
Langkah Penyahpepijatan:
Contoh Penggunaan Pengendalian Ralat dalam advancedFetcher:
func advancedFetcher(uri string, c chan int) { resp := makeGetRequest(uri) defer func() { if resp != nil { resp.Body.Close() } }() if resp.StatusCode != 0 { c <- resp.StatusCode return } body, err := ioutil.ReadAll(resp.Body) if err != nil { c <- -1 // Error code fmt.Println(err) return } c <- 200 // Success code }
Dengan menggabungkan pengendalian ralat yang teliti dan menggunakan nilai pulangan yang sesuai, anda boleh menyelesaikan ralat masa jalan dan memastikan kestabilan rangkak web anda program.
Atas ialah kandungan terperinci Mengapa My Go Web Crawler Mendapat 'Ralat Masa Jalan: Alamat Memori Tidak Sah atau Penolakan Penunjuk Tiada'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!