Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Go Middleware Boleh Mengendalikan Pengendali Ralat-Pemulangan?

Bagaimanakah Go Middleware Boleh Mengendalikan Pengendali Ralat-Pemulangan?

Mary-Kate Olsen
Lepaskan: 2024-11-29 01:43:11
asal
607 orang telah melayarinya

How Can Go Middleware Handle Error-Returning Handlers?

Corak Perisian Tengah dengan Pengendali Mengembalikan Ralat dalam Go

Corak perisian tengah Go menyediakan cara yang mudah untuk mengarang pengendali HTTP modular yang secara kolektif melaksanakan fungsi tertentu operasi sebelum, semasa, atau selepas pelaksanaan fungsi pengendali utama. Walau bagaimanapun, corak ini biasanya tidak menyokong pengendali yang mengembalikan ralat.

Untuk menangani had ini, seseorang boleh melaksanakan perisian tengah yang berfungsi sebagai penyesuai untuk pengendali yang mengembalikan ralat dengan menterjemahkan ralat yang mereka kembalikan kepada respons HTTP . Perisian tengah ini boleh ditambah sebagai perisian tengah terakhir dalam rantaian, mengendalikan keputusan akhir pengendali yang digubah. Berikut ialah contoh:

type errorHandler func(http.ResponseWriter, *http.Request) error

func (f errorHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    err := f(w, r)
    if err != nil {
        // log.Println(err)
        fmt.Println(err)
        os.Exit(1)
    }
}
Salin selepas log masuk

Perisian tengah ini membungkus pengendali yang mengembalikan ralat dan memastikan bahawa sebarang ralat yang dijananya dikendalikan dengan sewajarnya. Untuk menggunakan perisian tengah ini, cuma buat pembungkus untuk pengendali yang mengembalikan ralat:

func errorHandle(w http.ResponseWriter, r *http.Request) error {
    w.Write([]byte(`Hello World from errorHandle!`))
    return nil
}
Salin selepas log masuk

Dan kemudian gabungkannya dengan rangkaian perisian tengah anda, yang boleh termasuk perisian tengah lain yang tidak mengembalikan ralat:

middlewareChain := moreMiddleware(myMiddleware)
http.Handle("/", middlewareChain(errorHandler(errorHandle)))
Salin selepas log masuk

Pendekatan ini membolehkan anda menggabungkan pengendali pengembalian ralat dengan perisian tengah lain dengan lancar, memastikan bahawa sebarang ralat dikendalikan oleh ralat middleware pengendali di hujung rantai.

Atas ialah kandungan terperinci Bagaimanakah Go Middleware Boleh Mengendalikan Pengendali Ralat-Pemulangan?. 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