Hata Türleri
Result Tipi
Başarı veya hata döndüren fonksiyonlar:
tür Sonuç<T, E> = enum {
Tamam(T),
Hata(E)
}
işlev böl(a: Sayı, b: Sayı) -> Sonuç<Sayı, Yazı> {
eğer b == 0 {
hata dön "Sıfıra bölme"
}
tamam dön a / b
}
eş böl(10, 2) {
Tamam(x) => yazdır("Sonuç: ", x),
Hata(e) => yazdır("Hata: ", e)
}
Option Tipi
Değer olabilir veya olmayabilir:
tür Seçenek<T> = enum {
Bazı(T),
Hiç
}
işlev bul(liste: Liste<Sayı>, değer: Sayı) -> Seçenek<Sayı> {
döngü (i, x) listede {
eğer x == değer {
geri dön Bazı(i)
}
}
geri dön Hiç
}
Özel Hata Tipleri
tür DosyaHatası = enum {
Bulunamadı(Yazı),
İzinReddedildi,
Okuma Hatası(Yazı)
}
işlev dosya_oku(yol: Yazı) -> Sonuç<Yazı, DosyaHatası> {
eğer !dosya_var(yol) {
hata dön DosyaHatası.Bulunamadı(yol)
}
// ...
}
Unwrap Metodları
// Panic atar eğer hata varsa
değişken değer = sonuç.unwrap()
// Varsayılan değer kullan
değişken değer = sonuç.unwrap_or(0)
// Hata dönüştür
değişken değer = sonuç.expect("Hesaplama başarısız")