Rumah > pembangunan bahagian belakang > Golang > Apakah Amalan Terbaik untuk Mengendalikan Ralat dalam Go?

Apakah Amalan Terbaik untuk Mengendalikan Ralat dalam Go?

Linda Hamilton
Lepaskan: 2024-12-31 05:28:13
asal
1022 orang telah melayarinya

What are the Best Practices for Handling Errors in Go?

Pengendali Ralat Standard dalam Go

Go mempunyai beberapa pendekatan idiomatik untuk pengendalian ralat:

1. Pembolehubah Ralat Tetap

var (
    ErrSomethingBad = errors.New("some string")
    ErrKindFoo      = errors.New("foo happened")
)
Salin selepas log masuk

2. Jenis Ralat

type SomeError struct {
    ExtraInfo int
}
func (e SomeError) Error() string { /* … */ }
Salin selepas log masuk

3. Ralat Ad Hoc

func SomepackageFunction() error {
    return errors.New("not implemented")
}
Salin selepas log masuk

4. Ralat Perpustakaan Standard

func SomeFunc() error {
    return io.EOF
}
Salin selepas log masuk

5. Antara Muka Ralat

type Error interface {
    error
    Timeout() bool
    Temporary() bool
}
Salin selepas log masuk

6. Ralat Pembalut (Go 1.13 )

func SomepackageFunction() error {
    err := somethingThatCanFail()
    if err != nil {
        return fmt.Errorf("some context: %w", err)
    }
}
Salin selepas log masuk

Memilih Pendekatan yang Tepat

Kaedah pilihan ialah:

  • Ralat tetap pembolehubah atau jenis ralat untuk ralat yang mungkin ingin diuji oleh pengguna khususnya.
  • Ralat ad hoc atau ralat perpustakaan standard untuk ralat kecil yang tidak mungkin diuji.
  • Ralat antara muka untuk ralat dengan gelagat atau sifat tertentu.
  • Ralat terbungkus untuk menambah konteks kepada ralat sedia ada (Go 1.13 ).

Kelebihan:

  • Pembolehubah Ralat Tetap: Mudah untuk diuji dan dibandingkan.
  • Jenis Ralat: Boleh dilanjutkan dengan maklumat tambahan untuk ralat pengendalian.
  • Ralat Ad Hoc: Ringkas untuk ralat kecil.
  • Antara Muka Ralat: Tegakkan tingkah laku ralat khusus dan memudahkan polimorfisme.
  • Ralat Terbungkus: Sediakan konteks tanpa membuat ralat tersuai jenis.

Bacaan Lanjut:

  • [Effective Go on Errors](https://go.dev/doc/articles/errors)
  • [The Go Blog: Ralat pengendalian dan Pergi](https://blog.golang.org/error-handling-and-go)
  • [Dave Cheney: Memeriksa Ralat](https://dave.cheney.net/2016/04/07 /inspecting-errors)
  • [Peter Bourgon: Pengaturcaraan dengan ralat](https://go.dev/blog/errors)

Atas ialah kandungan terperinci Apakah Amalan Terbaik untuk Mengendalikan Ralat dalam Go?. 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