/// Uygulamaya özel hata sınıfı. Tüm servis/bridge/IO katmanları /// bu tipi fırlatır; UI tarafında tek noktada yakalanır. class FikoHata implements Exception { /// Kullanıcıya gösterilecek Türkçe mesaj. final String mesaj; /// Kategori (debug/log için). final FikoHataTuru tur; /// Orijinal exception (varsa). final Object? kaynak; /// Stack trace (varsa). final StackTrace? iz; const FikoHata( this.mesaj, { this.tur = FikoHataTuru.bilinmeyen, this.kaynak, this.iz, }); factory FikoHata.ag(String mesaj, [Object? kaynak, StackTrace? iz]) => FikoHata(mesaj, tur: FikoHataTuru.ag, kaynak: kaynak, iz: iz); factory FikoHata.kopru(String mesaj, [Object? kaynak, StackTrace? iz]) => FikoHata(mesaj, tur: FikoHataTuru.kopru, kaynak: kaynak, iz: iz); factory FikoHata.dosya(String mesaj, [Object? kaynak, StackTrace? iz]) => FikoHata(mesaj, tur: FikoHataTuru.dosya, kaynak: kaynak, iz: iz); factory FikoHata.dogrulama(String mesaj) => FikoHata(mesaj, tur: FikoHataTuru.dogrulama); factory FikoHata.kuyruk(String mesaj, [Object? kaynak, StackTrace? iz]) => FikoHata(mesaj, tur: FikoHataTuru.kuyruk, kaynak: kaynak, iz: iz); @override String toString() => 'FikoHata(${tur.name}): $mesaj'; } enum FikoHataTuru { ag, kopru, dosya, dogrulama, kuyruk, bilinmeyen, }