Tətbiqinizdə istisnalar və səhvlər necə idarə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində səhv idarəetməsi çox digər dillərdən fərqlidir, çünki burada ənənəvi mənada istisnalar yoxdur. Əvəzinə, funksiyalar adətən ikinci nəticə kimi səhv (error) dəyərini qaytarır.
Əsas yanaşmalar:
-
Funktion çağırışından sonra səhvi yoxlamaq:
result, err := someFunction() if err != nil { // səhv işləmə log.Println("Səhv:", err) return err } // result ilə davam et -
Öz səhv tiplərini yaratmaq
errors.Newvə yafmt.Errorfistifadə etməklə daha məlumatlı mesajlar üçün. -
Panik (
panic) və bərpa (recover) nadir hallarda istifadə olunur, əsasən kritik səhvlər üçün, hansı ki, normal axında baş verməməlidir. -
Səhvlərin qeydiyyatı və onları yuxarıya, yığma (stack) boyunca geri qaytarmaq üçün mərkəzləşdirilmiş işləmə.
Səhv idarəetmə nümunəsi:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("sıfıra bölmə")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Səhv:", err)
return
}
fmt.Println("Nəticə:", result)
}
Beləliklə, Go-da səhvlər açıq şəkildə idarə olunur, bu da kodun oxunaqlığını və etibarlılığını artırır.