kod ralat golang
Golang ialah bahasa pengaturcaraan yang agak baharu, tetapi sejak beberapa tahun lalu ia telah berkembang menjadi bahasa pengaturcaraan peringkat tinggi yang dipandang tinggi kerana kesederhanaan, kecekapan dan kemudahan pembelajarannya. Pengendalian ralat adalah bahagian yang tidak dapat dielakkan dalam menulis kod Golang. Artikel ini akan meneroka mekanisme pengendalian ralat dan kod ralat biasa di Golang.
Pengendalian ralat di Golang
Mekanisme pengendalian ralat di Golang terutamanya bergantung pada jenis ralat Fungsi boleh mengembalikan nilai ralat jenis, dan nilai ini akan dihantar ke tempat di mana ralat fungsi dipanggil , yang boleh menyemak sama ada nilai adalah nil. Jika tidak nil, ini bermakna fungsi mengembalikan ralat, dan pemanggil mesti mengendalikan ralat ini dan melakukan operasi yang sesuai. Jika tiada, ia bermakna fungsi itu berjaya dilaksanakan.
Berikut ialah contoh mudah yang menunjukkan cara mengembalikan ralat dalam Golang:
func divide(a, b float64) (float64, error) { if b == 0 { return 0, errors.New("division by zero") } return a / b, nil } func main() { result, err := divide(6, 0) if err != nil { fmt.Println("Error:", err) return } fmt.Println(result) }
Dalam contoh di atas, fungsi bahagi menyemak sama ada penyebutnya ialah 0. Jika 0, nilai jenis ralat baharu yang mengandungi mesej ralat "bahagi dengan sifar" dikembalikan. Dalam fungsi utama, kami menyemak sama ada nilai ralat yang dikembalikan adalah sifar dan mencetak mesej ralat jika tidak.
Kod ralat
Selain jenis ralat, terdapat juga mekanisme pengendalian ralat di Golang iaitu kod ralat. Kod ralat ialah nilai integer yang mengenal pasti pelbagai jenis ralat. Biasanya, kod ralat ini ditakrifkan dalam pembolehubah peringkat pakej dan dikongsi antara pelbagai fungsi.
Berikut ialah contoh yang menunjukkan fungsi menggunakan kod ralat:
var ( ErrBadRequest = errors.New("bad request") ErrUnauthorized = errors.New("unauthorized") ) func getUser(userId int) (user, int, error) { if userId <= 0 { return user{}, 0, ErrBadRequest } else if userId == 123 { return user{name: "Alice", age: 30}, 200, nil } return user{}, 0, ErrUnauthorized } func main() { user, status, err := getUser(123) if err != nil { if err == ErrBadRequest { fmt.Println("Error:", err) // 返回 400 所代表的错误码 return } else if err == ErrUnauthorized { fmt.Println("Error:", err) // 返回 401 所代表的错误码 return } } fmt.Println("User:", user) fmt.Println("Status:", status) }
Dalam contoh ini, kami mentakrifkan dua kod ralat: ErrBadRequest dan ErrUnauthorized. Dalam fungsi getUser, jika ID pengguna yang diluluskan adalah kurang daripada atau sama dengan 0, ErrBadRequest dikembalikan jika ID pengguna bersamaan dengan 123, struktur pengguna, kod status 200 dan nol dikembalikan, menunjukkan kejayaan; dikembalikan.
Dalam fungsi utama, kami menyemak nilai ralat jenis. Kami mengembalikan kod ralat HTTP 400 jika ralat adalah ErrBadRequest dan 401 jika ralat adalah ErrUnauthorized. Jika tidak, kami mencetak maklumat tentang pengguna dan kod status.
Ringkasan
Mekanisme pengendalian ralat di Golang membolehkan pembangun mengenal pasti ralat dan pengecualian dengan mudah dalam fungsi pengendali. Jenis ralat adalah teras pengendalian ralat di Golang Ia menyediakan maklumat ralat asas dan kaedah pengendalian. Mekanisme kod ralat menyediakan kaedah pengendalian ralat yang lebih fleksibel dan boleh menentukan kod ralat yang berbeza untuk jenis ralat yang berbeza. Mekanisme kod ralat boleh memberikan penyelesaian yang lebih elegan apabila menangani sejumlah besar ralat. Sama ada anda menggunakan kod ralat atau objek ralat, anda harus memilih mekanisme pengendalian ralat yang sesuai berdasarkan keperluan perniagaan.
Atas ialah kandungan terperinci kod ralat golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...

Artikel ini memperkenalkan pelbagai kaedah dan alat untuk memantau pangkalan data PostgreSQL di bawah sistem Debian, membantu anda memahami pemantauan prestasi pangkalan data sepenuhnya. 1. Gunakan PostgreSQL untuk membina pemantauan PostgreSQL sendiri menyediakan pelbagai pandangan untuk pemantauan aktiviti pangkalan data: PG_STAT_ACTIVITY: Memaparkan aktiviti pangkalan data dalam masa nyata, termasuk sambungan, pertanyaan, urus niaga dan maklumat lain. PG_STAT_REPLITI: Memantau status replikasi, terutamanya sesuai untuk kluster replikasi aliran. PG_STAT_DATABASE: Menyediakan statistik pangkalan data, seperti saiz pangkalan data, masa komitmen/masa rollback transaksi dan petunjuk utama lain. 2. Gunakan alat analisis log pgbadg

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Di bawah rangka kerja beegoorm, bagaimana untuk menentukan pangkalan data yang berkaitan dengan model? Banyak projek beego memerlukan pelbagai pangkalan data untuk dikendalikan secara serentak. Semasa menggunakan beego ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...
