Rumah > pembangunan bahagian belakang > Golang > panik dan pemulihan dalam pengendalian pengecualian Golang

panik dan pemulihan dalam pengendalian pengecualian Golang

WBOY
Lepaskan: 2024-04-15 18:15:02
asal
402 orang telah melayarinya

In Go, Panic dan Recover digunakan untuk pengendalian pengecualian. Panik digunakan untuk melaporkan pengecualian, dan Pulih digunakan untuk pulih daripada pengecualian. Panik akan menghentikan pelaksanaan program dan membuang nilai pengecualian antara muka jenis{}. Pulih boleh menangkap pengecualian daripada fungsi tertunda atau goroutin, mengembalikan nilai pengecualian antara muka jenis{} yang dilemparkannya.

panik dan pemulihan dalam pengendalian pengecualian Golang

Panic dan Recover dalam pengendalian pengecualian bahasa Go

Dalam bahasa Go, kata kunci panik dan recover ialah mekanisme penting untuk pengendalian pengecualian. panik digunakan untuk melaporkan pengecualian dan recover digunakan untuk memulihkan daripada pengecualian. panicrecover 关键字是异常处理的重要机制。panic 用于报告异常,而 recover 用于从异常中恢复。

Panic

panic 关键字用于报告一个异常条件,它会立即停止程序执行,并打印堆栈信息。使用 panic 时,程序会抛出一个 interface{} 类型的异常值。例如:

package main

func main() {
    panic("发生了异常")
}
Salin selepas log masuk

Recover

recover 关键字用于从 panic 中恢复。它可以从当前 goroutine 返回一个 interface{} 类型的异常值。recover 只能在延迟函数或 goroutine 中使用。例如:

package main

import "fmt"

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("捕获到异常:", r)
        }
    }()
    panic("发生了异常")
}
Salin selepas log masuk

实战案例

假设我们有一个函数 divide,它计算两个数的商:

func divide(a, b int) float64 {
    if b == 0 {
        panic("除数不能为零")
    }
    return float64(a) / float64(b)
}
Salin selepas log masuk

为了处理 divide 函数中可能发生的异常,我们可以使用 recover

Panic

🎜🎜 Kata kunci panik digunakan untuk melaporkan syarat pengecualian, yang akan menghentikan serta-merta pelaksanaan program dan mencetak maklumat tindanan. Apabila menggunakan panik, atur cara akan membuang nilai pengecualian jenis antara muka{}. Contohnya: 🎜
func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("捕获到异常:", r)
        }
    }()

    fmt.Println(divide(10, 2))
    fmt.Println(divide(10, 0))
}
Salin selepas log masuk
🎜🎜Recover🎜🎜🎜recover kata kunci digunakan untuk memulihkan daripada panik. Ia boleh mengembalikan nilai pengecualian jenis antara muka{} daripada goroutine semasa. recover hanya boleh digunakan dalam fungsi tertunda atau goroutine. Contohnya: 🎜
5
捕获到异常: 除数不能为零
Salin selepas log masuk
🎜🎜Kes praktikal🎜🎜🎜Andaikan kita mempunyai fungsi bahagi yang mengira hasil bagi dua nombor: 🎜rrreee🎜Untuk mengendalikan perkara yang mungkin berlaku dalam bahagi fungsi Untuk pengecualian, kita boleh menggunakan recover Kata kunci: 🎜rrreee🎜Output: 🎜rrreee

Atas ialah kandungan terperinci panik dan pemulihan dalam 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