Junior — Middle
Kā jūsu lietojumprogrammā tiek pārvaldītas izņēmumi un kļūdas?
sobes.tech AI
Atbilde no AI
Go valodā kļūdu pārvaldība atšķiras no daudzām citām valodām, jo šeit nav ierastās izņēmumu sistēmas. Tā vietā funkcijas parasti atgriež kļūdas vērtību (error) kā otru rezultātu.
Galvenie pieejas veidi:
-
Kļūdas pārbaude pēc funkcijas izsaukšanas:
result, err := someFunction() if err != nil { // kļūdas apstrāde log.Println("Kļūda:", err) return err } // turpināt ar result -
Pašu kļūdu tipu izveide ar
errors.Newvaifmt.Errorfinformatīvāku ziņojumu nodrošināšanai. -
Panikas (
panic) un atkopšanās (recover) reti tiek izmantotas, galvenokārt kritisku kļūdu gadījumā, kas nedrīkst notikt normālā plūsmā. -
Kļūdu reģistrēšana un to nodošana augšup pa steku centralizētai apstrādei.
Kļūdu apstrādes piemērs:
package main
import (
"errors"
"fmt"
)
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("dalīšana ar nulli")
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Kļūda:", err)
return
}
fmt.Println("Rezultāts:", result)
}
Tādējādi, Go valodā kļūdas tiek skaidri pārvaldītas, kas uzlabo koda lasāmību un uzticamību.