Rumah >pembangunan bahagian belakang >Golang >Pengendalian pengecualian dalam pelaksanaan fungsi tersuai golang

Pengendalian pengecualian dalam pelaksanaan fungsi tersuai golang

WBOY
WBOYasal
2024-04-28 08:21:011028semak imbas

Terdapat tiga cara untuk mengendalikan pengecualian fungsi tersuai dalam Go: gunakan fungsi terbina dalam panik (lihat artikel untuk sintaks) Kes praktikal: tentukan fungsi bahagi, apabila pembahagi ialah 0, kelebihan panik: mudah, mesej ralat boleh disesuaikan, boleh digunakan dalam fungsi yang berbeza Kelemahan ralat pengendalian tahap: mengganggu aliran program, kesukaran dalam penyahpepijatan

Pengendalian pengecualian dalam pelaksanaan fungsi tersuai golang

Pengendalian pengecualian dalam fungsi tersuai dalam Go

Terdapat banyak cara untuk mengendalikan pengecualian fungsi tersuai dalam Go. Satu cara ialah menggunakan fungsi terbina dalam panic. panik menghantar kawalan program kepada fungsi recover, membolehkan anda mengendalikan pengecualian dan menyambung semula pelaksanaan program dengan selamat. panic 内置函数。panic 会将程序控制权传递给 recover 函数,从而允许您处理异常并安全地恢复程序执行。

语法

package main

import "fmt"

func main() {
    f := func() {
        panic("custom error")
    }

    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered from panic:", r)
        }
    }()

    f()
}

注意:defer 语句必须放置在 panic 语句之前,以便在发生 panic 时被调用。

实战案例

我们定义了一个名为 divide

Syntax

package main

import "fmt"

func main() {
    divide := func(numerator, denominator int) float64 {
        if denominator == 0 {
            // 触发错误
            panic("不能除以 0")
        }

        return float64(numerator) / float64(denominator)
    }

    defer func() {
        if r := recover(); r != nil {
            fmt.Println("错误:", r)
        }
    }()

    result := divide(10, 2)
    fmt.Println(result) // 输出:5

    result = divide(10, 0) // 触发错误
}

Nota: tunda pernyataan mesti diletakkan sebelum pernyataan panic supaya apabila panik berlaku adalah dipanggil.

Kes praktikal
  • Kami mentakrifkan fungsi tersuai bernama bahagi, yang membahagi dua nombor. Jika pembahagi ialah 0, fungsi mencetuskan pengecualian:
  • 5
    错误: 不能除以 0
  • Output:
  • rrreee
  • Kelebihan

Selesa dan mudah untuk dilaksanakan.

    Membolehkan anda menentukan mesej ralat tersuai.
  • Ralat boleh dikendalikan pada tahap fungsi yang berbeza.
Kelemahan 🎜🎜🎜 boleh memecahkan aliran program. 🎜🎜Boleh sukar untuk nyahpepijat untuk program besar. 🎜🎜

Atas ialah kandungan terperinci Pengendalian pengecualian dalam pelaksanaan fungsi tersuai golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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