Lanjutkan keupayaan pengendalian pengecualian Golang

PHPz
Lepaskan: 2024-04-15 17:54:01
asal
1070 orang telah melayarinya

Cara untuk melanjutkan keupayaan pengendalian pengecualian Go termasuk menentukan jenis ralat tersuai untuk memberikan maklumat tambahan. Gunakan kata kunci panik untuk membuang pengecualian untuk mengganggu program dan lulus nilai ralat. Tulis pengendali ralat menggunakan fungsi pulih untuk mengendalikan pengecualian yang dilemparkan dan menyambung semula pelaksanaan program.

Lanjutkan keupayaan pengendalian pengecualian Golang

Keupayaan pengendalian pengecualian Go lanjutan

Mekanisme pengendalian pengecualian bahasa Go menyediakan cara yang mudah dan berkesan untuk mengendalikan ralat masa jalan. Walau bagaimanapun, tingkah laku lalainya mungkin terlalu terhad untuk sesetengah senario. Artikel ini akan melihat beberapa cara untuk melanjutkan keupayaan pengendalian pengecualian Go, termasuk menggunakan jenis ralat tersuai, pengecualian lontaran dan pengendali ralat menulis.

Jenis ralat tersuai

Bahasa Go membolehkan anda menentukan jenis ralat anda sendiri, yang boleh membantu meningkatkan kebolehbacaan dan kebolehselenggaraan kod anda. Jenis ralat tersuai boleh membawa maklumat tambahan untuk membantu penyahpepijatan dan penyelesaian masalah.

type MyError struct {
    msg string
}

func (e MyError) Error() string {
    return e.msg
}

func someFunc() (int, error) {
    if somethingWrong {
        return 0, MyError{"Something went wrong!"}
    }
    return 1, nil
}
Salin selepas log masuk

Lemparkan pengecualian

Dalam Go, kata kunci panik digunakan untuk membuang pengecualian. Pengecualian mengganggu pelaksanaan biasa program dan lulus nilai untuk menunjukkan ralat. panic 关键字用于抛出异常。异常会中断程序的正常执行,并传递一个值来表示错误。

func someFunc() {
    if somethingWrong {
        panic("Something went wrong!")
    }
}
Salin selepas log masuk

编写错误处理程序

Go 语言提供了 recover 函数来恢复从异常中抛出的错误。它可以将异常转换为 error

func main() {
    defer func() {
        if err := recover(); err != nil {
            // 处理错误
        }
    }()

    someFunc()
}
Salin selepas log masuk

Pengendali Ralat Penulisan

Bahasa Go menyediakan fungsi recover untuk memulihkan ralat yang dilemparkan daripada pengecualian. Ia menukar pengecualian kepada jenis error dan membolehkan program mengendalikannya.

package main

import (
    "fmt"
    "net/http"
)

type ServerError struct {
    code    int
    message string
}

func (e ServerError) Error() string {
    return fmt.Sprintf("Error %d: %s", e.code, e.message)
}

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        if somethingWrong {
            http.Error(w, "Internal Server Error", http.StatusInternalServerError)
            return
        }

        // 其它代码
    })

    http.ListenAndServe(":8080", nil)
}
Salin selepas log masuk

Satu kes praktikal

🎜🎜Berikut ialah kes praktikal yang menunjukkan cara menggunakan jenis ralat tersuai dan pengendali ralat untuk mengendalikan ralat dalam pelayan web: 🎜rrreee🎜Dengan memperluaskan keupayaan pengendalian pengecualian Go, anda boleh mencipta lebih mantap , aplikasi yang lebih boleh diselenggara. 🎜

Atas ialah kandungan terperinci Lanjutkan keupayaan pengendalian pengecualian Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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