AIFA AKADEMI · Kurumsal Wiki
4.330 makale
Ana sayfa Kurumsal Wiki › Hata Bilgi Bankası › EKB-KOD-EXCEPTION

Kod Exception Riskleri

ERROR_KBERPGOLD_COREACTIVEAIFASOFT_INTERNALGENERATED_PROPOSAL
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

ERPPRO statik taramasında bulunan 104 exception riski: guard, tetikleme koşulu, olasılık, öneri, durum.

Künye (front-matter) · EKB-KOD-EXCEPTION · reality [SUPPORT_OBSERVED, SOURCE_IMPLEMENTED, GENERATED_PROPOSAL]
idEKB-KOD-EXCEPTION
titleKod Exception Riskleri
entity_typeERROR_KB
moduleMOD-KALITE
audience[SUPPORT, DEVELOPER, QA]
confidentialityAIFASOFT_INTERNAL
product_scopeERPGOLD_CORE
customer_scopeALL
reality[SUPPORT_OBSERVED, SOURCE_IMPLEMENTED, GENERATED_PROPOSAL]
lifecycleACTIVE
confidenceMEDIUM
version_fromVERSION_UNKNOWN
version_to-
created_at2026-09-13
last_verified2026-09-13
source_hashes[]
sources[DOCUMENT:ERPGOLD_ERROR_MASTER.xlsx, DOCUMENT:ERPGOLD_HATA_KOK_NEDEN_BILGI_BANKASI.md, SRC-TKT-ERP, SOURCE_CODE:ERPPRO, DB_CATALOG:INST-ERPGOLDV2]
aliases[Kod Exception Riskleri]
tags[error-kb]
wiki_versionv1.5
source_packageERPGOLD_HATA_BILGI_BANKASI_v1 / Wiki_23_Hata_Bilgi_Bankasi
code_files54 dosya
runtime_statusNOT_REPRODUCED — statik analiz

Kod exception riskleri (104 bulgu). ERPPRO kaynak kodunun statik taramasında bulunan olası exception noktaları: guard var mı, tetikleme koşulu, olasılık ve öneri. Hiçbiri çalışma zamanında yeniden üretilmemiştir; "YANLIŞ POZİTİF (kapalı)" durumundakiler doğrulama sonrası elenmiştir.

Özet

Bulgu104
DurumYANLIŞ POZİTİF (kapalı) 58 · AÇIK 46
ModülMOD-EFATURA 28 · MOD-SISTEM 25 · MOD-GENEL 15 · MOD-CARI 12 · MOD-STOK 7 · MOD-RAPOR 6 · MOD-DIGER 4 · MOD-FINANS 4 · MOD-SIPARIS 3
Potential=EVET46

Kayıtlar

#ExceptionModülDosya:satırClass.MethodTetikleme koşuluGuardPotentialOlasılıkEtkiSilentGüvenKullanıcı belirtisiÖneriDurum
1InvalidCastException (yanlış pozitif)MOD-SISTEMERPPRO/AmlScan/MasakForm.vb:73MasakForm.MasakSorgulaspinHassasiyet.Value boş/sayısal olmayan değer olursaEVET — spinHassasiyet bir DevExpress SpinEdit; .Value her zaman Decimal döner, Nothing/boş metin olamaz. Convert.ToInt32(Decimal) atmaz.HAYIRÇOK DÜŞÜKS4HAYIR90Belirti yok (yanlış pozitif).Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
2InvalidCastException (CDate)MOD-RAPORERPPRO/BTRANS/Class/CreateBTransDoviz.vb:12CreateBTransDoviz.BtnCreateXML_ClickKullanıcı TxtDonem.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).KISMEN — Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryPEVETORTAS3HAYIR85Teknik hata kutusu; XML üretilmez.DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.AÇIK
3InvalidCastException (CDate)MOD-RAPORERPPRO/BTRANS/Class/CreateBTransDoviz.vb:13CreateBTransDoviz.BtnCreateXML_ClickKullanıcı TxtBasTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).KISMEN — Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryPEVETORTAS3HAYIR85Teknik hata kutusu; XML üretilmez.DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.AÇIK
4InvalidCastException (CDate)MOD-RAPORERPPRO/BTRANS/Class/CreateBTransDoviz.vb:14CreateBTransDoviz.BtnCreateXML_ClickKullanıcı TxtSonTarih.Text alanına tarih olarak çözümlenemeyen bir metin girip 'XML Oluştur' butonuna basarsa (örn. '13.2026', boş, harf).KISMEN — Try/Catch var; Catch ex → MsgBox(ex.Message) (teknik İngilizce mesaj 'Conversion from string ... to type Date is not valid'). Ön doğrulama (IsDate/DateTime.TryPEVETORTAS3HAYIR85Teknik hata kutusu; XML üretilmez.DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak.AÇIK
5IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Dao/Dynamic/Class/Base/Table.vb:45Table.NewTableName '.' içermezseEVET — Satır 44 `If InStr(TableName, ".") > 0` koruması var; (0) indeksi her zaman mevcuttur.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
6IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Dao/Dynamic/Class/Base/Table.vb:46Table.NewTableName '.' içermezseEVET — InStr koruması var; '.' varsa Split en az 2 eleman verir ('Sema.' → ikinci eleman boş string, istisna yok).HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
7IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:25Compiler.ClassName (Get)Code içinde 'partial class'/'public class' bulunduğundaEVET — InStr>0 koruması var; String.Split(...)(0) her zaman en az 1 eleman döndürür. Not: Split(Environment.NewLine) Option Strict Off ile String→Char dönüşümü yapar (HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
8IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:29Compiler.ClassName (Get)Code içinde 'partial class'/'public class' bulunduğundaEVET — InStr>0 koruması var; String.Split(...)(0) her zaman en az 1 eleman döndürür. Not: Split(Environment.NewLine) Option Strict Off ile String→Char dönüşümü yapar (HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
9IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMCodeDesigner/CodeDesigner/Common/Compiler.vb:25Compiler.ClassName (Get)Code içinde 'partial class'/'public class' bulunduğundaEVET — InStr>0 koruması var; String.Split(...)(0) her zaman en az 1 eleman döndürür. Not: Split(Environment.NewLine) Option Strict Off ile String→Char dönüşümü yapar (HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
10IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMCodeDesigner/CodeDesigner/Common/Compiler.vb:29Compiler.ClassName (Get)Code içinde 'partial class'/'public class' bulunduğundaEVET — InStr>0 koruması var; String.Split(...)(0) her zaman en az 1 eleman döndürür. Not: Split(Environment.NewLine) Option Strict Off ile String→Char dönüşümü yapar (HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
11IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Dao/Dynamic/Class/Attribute/Fields.vb:34Fields.TableName (Get)Name '.' içermezseEVET — `String.IsNullOrEmpty(Name) = False AndAlso InStr(Name, ".") > 0` koruması var.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
12IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Dao/Dynamic/Class/Attribute/Fields.vb:43Fields.SchemaName (Get)Name '.' içermezseEVET — Aynı koruma (satır 42).HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
13IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Dao/Dynamic/Class/Attribute/Fields.vb:120Fields.ToClassEVET — (0) indeksi her zaman mevcut; TableName zaten '.' sonrası parçayı döndürür.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
14IndexOutOfRangeException / InvalidCastExceptionMOD-STOKERPPRO/Controls/Islem Ekranı/Ekran/FrmBlokTakozGirisi.vb:17FrmBlokTakozGirisi.ListRefreshTxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(0) yok; veya sayısal olmayan parça → Integer'a dönüşüm hatası).KISMEN — Try/Catch var ama Catch bloğu boş; SubeId/HesapId/FisNo 0 kalır ve sorgu 0 değerleriyle çalışır. Form Load'da (satır 3-4) ListRefresh boş metinle çağrıldığı içiEVETÇOK YÜKSEKS4EVET90Belirti yok; hatalı girişte 'Girilen Bilgilere Göre Takoz Cıkıs İşlemleri Bulunamadı' mesajı.Metni Split edip parça sayısı ve Integer.TryParse ile doğrulamak; geçersizse kullanıcıya uyarı verip Exit Sub.AÇIK
15IndexOutOfRangeException / InvalidCastExceptionMOD-STOKERPPRO/Controls/Islem Ekranı/Ekran/FrmBlokTakozGirisi.vb:18FrmBlokTakozGirisi.ListRefreshTxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(1) yok; veya sayısal olmayan parça → Integer'a dönüşüm hatası).KISMEN — Try/Catch var ama Catch bloğu boş; SubeId/HesapId/FisNo 0 kalır ve sorgu 0 değerleriyle çalışır. Form Load'da (satır 3-4) ListRefresh boş metinle çağrıldığı içiEVETÇOK YÜKSEKS4EVET90Belirti yok; hatalı girişte 'Girilen Bilgilere Göre Takoz Cıkıs İşlemleri Bulunamadı' mesajı.Metni Split edip parça sayısı ve Integer.TryParse ile doğrulamak; geçersizse kullanıcıya uyarı verip Exit Sub.AÇIK
16IndexOutOfRangeException / InvalidCastExceptionMOD-STOKERPPRO/Controls/Islem Ekranı/Ekran/FrmBlokTakozGirisi.vb:19FrmBlokTakozGirisi.ListRefreshTxtSubeId.Text 'Sube.Hesap.FisNo' biçiminde değilse (Form Load'da boş metinle çağrılır → Split('.')(2) yok; veya sayısal olmayan parça → Integer'a dönüşüm hatası).KISMEN — Try/Catch var ama Catch bloğu boş; SubeId/HesapId/FisNo 0 kalır ve sorgu 0 değerleriyle çalışır. Form Load'da (satır 3-4) ListRefresh boş metinle çağrıldığı içiEVETÇOK YÜKSEKS4EVET90Belirti yok; hatalı girişte 'Girilen Bilgilere Göre Takoz Cıkıs İşlemleri Bulunamadı' mesajı.Metni Split edip parça sayısı ve Integer.TryParse ile doğrulamak; geçersizse kullanıcıya uyarı verip Exit Sub.AÇIK
17IndexOutOfRangeException (yanlış pozitif)MOD-STOKERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmTakozGiris.vb:789FrmTakozGiris.TxtBarkod_ValidatedEVET — (0) indeksi her zaman mevcut; `.ToNumeric` = Val() tabanlı, sayısal olmayan metinde 0 döner, istisna atmaz. IndexOf('|')>0 koruması da var.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
18IndexOutOfRangeException (yanlış pozitif)MOD-STOKERPPRO/Controls/Islem Ekranı/Ekran/iFTakozGiris.vb:791iFTakozGiris.TxtBarkod_ValidatedEVET — Aynı desen; (0) her zaman var, ToNumeric = Val.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
19IndexOutOfRangeException (yanlış pozitif)MOD-STOKERPPRO/Form/Tanımlamalar/Stok/FrmTakozSuKontrol.vb:68FrmTakozSuKontrol.BarkodValidateEVET — (0) her zaman var; ayrıca Try/Catch içinde.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
20IndexOutOfRangeException (yanlış pozitif)MOD-GENELERPPRO/Controls/Grid/DataList.vb:50DataList.DataBindDecCount '.' içermezseEVET — Satır 49 `If InStr(DecCount, ".") > 0` koruması var. Ayrıca metot On Error Resume Next ile başlıyor.HAYIRÇOK DÜŞÜKS4EVET90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
21IndexOutOfRangeException (yanlış pozitif)MOD-GENELERPPRO/Controls/Grid/SimpleList.vb:187SimpleList.RetriveDataDecCount '.' içermezseEVET — Satır 186 InStr koruması var; On Error Resume Next aktif.HAYIRÇOK DÜŞÜKS4EVET90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
22IndexOutOfRangeException (yanlış pozitif)MOD-CARIERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:78iScreen.InitPermissionButon metni '-' içermezseEVET — Aynı satırda `If InStr(c.Text, "-") > 0` koruması var.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
23UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk)MOD-CARIERPPRO/Class/Ext/Genel.DosyaEx.vb:81Dosya.ShowFileSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.HAYIR — FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.EVETORTAS3HAYIR80Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.AÇIK
24UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk)MOD-CARIERPPRO/Form/Tanımlamalar/Cari/FrmCariKartEkle.vb:234FrmCariKartEkle.TeminatlarButtonClickSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.HAYIR — FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.EVETORTAS3HAYIR80Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.AÇIK
25UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk)MOD-CARIERPPRO/Form/Tanımlamalar/Cari/FrmTeminatEkle.vb:58FrmTeminatEkle.ShowFileSplit('.')(0) hiçbir zaman IndexOutOfRange atmaz. Gerçek risk: Windows kullanıcı adı veya Temp yolu '.' içeriyorsa (örn. C:\Users\ad.soyad\AppData\Local\Temp\tmpA1.tmp) Split('.')(0) = 'C:\Users\ad' olur; dosya 'C:\Users\ad.pdf' olarak C:\Users altında oluşturulmaya çalışılır → yetki/dizin hatası.HAYIR — FileStream oluşturma Try/Catch dışında (sadece Process.Start Try içinde). DocumentData Is Nothing kontrolü var ama yol kontrolü yok.EVETORTAS3HAYIR80Teminat/dosya görüntülemede yakalanmamış istisna (ThreadException → hata formu veya sessiz kapanma).Path.ChangeExtension(Path.GetTempFileName(), DocumentType) veya Path.Combine(Path.GetTempPath(), Guid + uzantı) kullanmak; FileStream'i Try/Catch'e almak.AÇIK
26IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Configuration/ConfigurationForm.vb:303ConfigurationForm.ReadDataSource ',' içermezseEVET — Satır 302 InStr koruması + Try/Catch.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
27IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Configuration/ConfigurationForm.vb:304ConfigurationForm.ReadDataSource ',' içermezseEVET — Aynı koruma.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
28IndexOutOfRangeExceptionMOD-SISTEMCodeDesigner/CodeDesigner/Controls/UiFormDesigner/UiForm.vb:54UiForm.LoadDesignerDesigner kodundaki 'Friend WithEvents' satırı beklenen 'Friend WithEvents Ad as New Tip' biçiminde değilse (elle düzenlenmiş, fazladan boşluk → Split(" ") boş token üretir) (5) indeksi bulunamaz.KISMEN — Satır 30 `On Error Resume Next` → istisna yutulur, Dim değişkeni Nothing kalır, `ControlTpye <> ""` False olur ve kontrol sessizce atlanır. Araç tarafından üretEVETDÜŞÜKS4EVET70Tasarımcıda bazı kontroller yüklenmez; hata mesajı yok.Split(" "c, StringSplitOptions.RemoveEmptyEntries) + uzunluk kontrolü; On Error Resume Next kaldırılıp Try/Catch ile loglama.AÇIK
29IndexOutOfRangeExceptionMOD-SISTEMCodeDesigner/CodeDesigner/Controls/UiFormDesigner/UiForm.vb:55UiForm.LoadDesignerDesigner kodundaki 'Friend WithEvents' satırı beklenen 'Friend WithEvents Ad as New Tip' biçiminde değilse (elle düzenlenmiş, fazladan boşluk → Split(" ") boş token üretir) (2) indeksi bulunamaz.KISMEN — Satır 30 `On Error Resume Next` → istisna yutulur, Dim değişkeni Nothing kalır, `ControlTpye <> ""` False olur ve kontrol sessizce atlanır. Araç tarafından üretEVETDÜŞÜKS4EVET70Tasarımcıda bazı kontroller yüklenmez; hata mesajı yok.Split(" "c, StringSplitOptions.RemoveEmptyEntries) + uzunluk kontrolü; On Error Resume Next kaldırılıp Try/Catch ile loglama.AÇIK
30IndexOutOfRangeException (yanlış pozitif)MOD-SISTEMCodeDesigner/CodeDesigner/Controls/UiFormDesigner/UiForm.vb:99UiForm.ReadPropertiesEVET — InStr>0 koruması var; (0) her zaman mevcut.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
31NullReferenceException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Dao/Dynamic/Controls/DynamicList.vb:41DynamicList.SelectedItem (Get)Odaklı satır yoksaEVET — Satır 42 `If Row IsNot Nothing` koruması var.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
32NullReferenceExceptionMOD-DIGERERPPRO/Controls/Islem Ekranı/OldFis/EtiketDesignList.vb:17EtiketDesignList.SimpleList1_ButtonClickListe boşken veya satır seçili değilken Düzenle/Sil butonuna basılırsa GetFocusedRow Nothing döner; `New EtiketDesign(Item)` / `Item.Delete` NRE atar.KISMEN — Satır 16 `On Error Resume Next` → NRE yutulur, hiçbir şey olmaz. Item Is Nothing kontrolü yok (karşılaştırma: RDPList.vb:13 aynı deseni açıkça kontrol ediyor).EVETORTAS4EVET75Butona basınca hiçbir şey olmaz, mesaj yok.`If Item Is Nothing Then Message.Show(NotSelectedRecord) : Exit Sub` eklemek; On Error Resume Next kaldırmak.AÇIK
33Tüm istisnalar (maskeleme)MOD-CARIERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/UrunListesi.vb:59UrunListesi.LoadStokDSX.TABLE.ListOfMaden/ListOfEmtia vb. Nothing ise veya öğe eşlemesinde istisna oluşursaKISMEN — On Error Resume Next tüm hataları yutar; liste eksik/boş kalır. Loglama yok.EVETDÜŞÜKS3EVET65Seri işlem ekranında ürün listesi eksik görünür; hata mesajı yok.On Error Resume Next yerine Try/Catch + kullanıcıya uyarı.AÇIK
34Tüm istisnalar (maskeleme)MOD-DIGERERPPRO/Controls/Islem Ekranı/OldFis/EtiketDesignList.vb:16EtiketDesignList.SimpleList1_ButtonClickBkz. satır 17 kaydıKISMEN — On Error Resume Next; NRE ve alt form hataları yutulur.EVETORTAS4EVET75Buton tepkisiz.Try/Catch + Nothing kontrolü.AÇIK
35TargetInvocationException / InvalidCastException (maskeleme)MOD-RAPORERPPRO/Controls/Islem Ekranı/OldFis/EtiketDetay.vb:329EtiketDetay.GetValueItem Nothing ise veya FieldName özelliği okunurken istisna oluşursa (Prop.GetValue), Result boş kalır.KISMEN — On Error Resume Next; Prop IsNot Nothing kontrolü var ancak Item Nothing kontrolü yok.EVETDÜŞÜKS4EVET60Etikette ilgili alan boş basılır.Try/Catch ile alan bazlı hata metni ('#ERR') basmak.AÇIK
36Tüm istisnalar (maskeleme)MOD-GENELERPPRO/Controls/Grid/DataList.vb:36DataList.DataBindInternalDb(Query).DataTable Nothing dönerse (SQL hatası) veya DevExpress kolon işlemlerinde istisna olursaKISMEN — On Error Resume Next; SQL hatası InternalDb tarafından MsgBox ile gösterilir, sonrası sessiz.EVETDÜŞÜKS4EVET70Liste boş; ek mesaj yok.Try/Catch; DataTable Nothing kontrolü.AÇIK
37Tüm istisnalar (maskeleme)MOD-GENELERPPRO/Controls/Grid/DataListBase.vb:54DataListBase.DataBindActiveObject Nothing ise veya görsel/veri bağlama hatasıKISMEN — On Error Resume Next.EVETDÜŞÜKS4EVET70Liste/resim yüklenmez, mesaj yok.Try/Catch + loglama.AÇIK
38Tüm istisnalar (maskeleme)MOD-GENELERPPRO/Controls/Grid/SimpleList.vb:173SimpleList.RetriveDataSQL/DevExpress hatalarıKISMEN — On Error Resume Next.EVETDÜŞÜKS4EVET70Liste boş; mesaj yok.Try/Catch + loglama.AÇIK
39Tüm istisnalar (maskeleme)MOD-DIGERERPPRO/Controls/Takvim/Class/Appointment.vb:28Appointment.New(Apt)Apt.ResourceIds / RecurrenceInfo Nothing veya DevExpress persistence helper istisnasıKISMEN — On Error Resume Next; nesne kısmen dolu olarak devam eder ve kaydedilebilir.EVETDÜŞÜKS4EVET60Randevu eksik bilgiyle kaydedilir; mesaj yok.Try/Catch, hatalı alan için varsayılan atama ve loglama.AÇIK
40InvalidCastException (CBool(""))MOD-DIGERERPPRO/Controls/Takvim/Class/TicketList.vb:65TicketList.GridView1_CustomDrawCellIsActive veya Status hücresi NULL ise `CBool("" & Nothing)` = CBool("") InvalidCastException atar.KISMEN — On Error Resume Next; hücre renklendirmesi atlanır.EVETORTAS4EVET75Bazı bilet satırları renklendirilmez.Val()/Boolean.TryParse ile güvenli dönüşüm.AÇIK
41NullReferenceException (hata işleyici içinde)MOD-SISTEMERPPRO/Class/Ext/ApplicationExt.vb:16MyApplication.ShowDebugOutput1) Giriş ekranı (FrmLoginForm.New) çalışmadan önce bir istisna oluşursa Program.UserSettings Nothing'dir; satır 15 `Program.UserSettings.AutoErrorHandle` On Error Resume Next'ten ÖNCE çalıştığı için hata işleyicinin kendisi NRE atar (ikincil çökme). 2) AutoErrorHandle <> 1 ise hiçbir şey gösterilmez/loglanmaz. 3) st.GetFrame(0) Nothing ise Show çağrısı tümüyle atlanır.KISMEN — On Error Resume Next yalnızca If içindeki satırları kapsar. Loglama yok. ExeptionForm.BtnKapat → `End` (uygulamayı sonlandırır).EVETORTAS1EVET80Uygulama açılışta sessizce kapanır veya hata hiç görünmez; AutoErrorHandle=1 ise hata formu, 'Kapat' → program kapanır.UserSettings Nothing kontrolü; AutoErrorHandle=0 iken de dosyaya loglama; UnhandledException'da e.ExitApplication'ı bilinçli yönetmek.AÇIK
42Tüm istisnalar (maskeleme)MOD-SISTEMCodeDesigner/CodeDesigner/Controls/UiFormDesigner/UiForm.vb:30UiForm.LoadDesignerDesigner kodu ayrıştırılırken herhangi bir istisna (Type.GetType Nothing → Activator NRE, Split indeks vb.)KISMEN — On Error Resume Next; kontroller sessizce atlanır.EVETDÜŞÜKS4EVET70Form tasarımcısında eksik kontroller.Try/Catch + hata listesi.AÇIK
43Tüm istisnalar (maskeleme)MOD-SISTEMCodeDesigner/CodeDesigner/Controls/Properties/Properties.vb:220Properties.ToStringLate-bound .FieldName/.Mask erişimi desteklemeyen kontrol tipinde MissingMemberExceptionKISMEN — On Error Resume Next; satır atlanır.EVETDÜŞÜKS4EVET65Üretilen designer kodunda eksik özellik satırı.Tip kontrolü (TypeOf) ile üretim.AÇIK
44ArgumentOutOfRangeException (yanlış pozitif)MOD-EFATURAERPPRO/Controls/Islem Ekranı/Ekran/FrmEFaturaBas.vb:262FrmEFaturaBas.FormSaveMicrosoft.VisualBasic.Left/Right String.Substring'den farklı olarak kısa/Nothing metinde istisna atmaz (metnin tamamını veya "" döndürür).EVET — VB Left/Right doğası gereği güvenli. Not: Kodu 3 karakterden kısa ise DovizKodu eksik yazılır (istisna yok, veri riski) — ERPFatura.vb:79 Substring(0,3) ile yenHAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
45ArgumentOutOfRangeException (yanlış pozitif)MOD-CARIERPPRO/Controls/Islem Ekranı/Ekran/iFSeriIslem.vb:26iFSeriIslem.formDataBindMicrosoft.VisualBasic.Left/Right String.Substring'den farklı olarak kısa/Nothing metinde istisna atmaz (metnin tamamını veya "" döndürür).EVET — VB Left/Right doğası gereği güvenli.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
46ArgumentOutOfRangeException (yanlış pozitif)MOD-CARIERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmStokIslem.vb:89FrmStokIslem.DataBindMicrosoft.VisualBasic.Left/Right String.Substring'den farklı olarak kısa/Nothing metinde istisna atmaz (metnin tamamını veya "" döndürür).EVET — VB Left/Right doğası gereği güvenli.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
47ArgumentOutOfRangeException (yanlış pozitif)MOD-CARIERPPRO/Class/Ext/Cari.ListItem.vb:19ListItem.NewMicrosoft.VisualBasic.Left/Right String.Substring'den farklı olarak kısa/Nothing metinde istisna atmaz (metnin tamamını veya "" döndürür).EVET — VB Left/Right doğası gereği güvenli.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
48ArgumentOutOfRangeException (yanlış pozitif)MOD-CARIERPPRO/Class/Dao/Islem/FrmExLimit.vb:61FrmExLimit.SendMicrosoft.VisualBasic.Left/Right String.Substring'den farklı olarak kısa/Nothing metinde istisna atmaz (metnin tamamını veya "" döndürür).EVET — VB Left/Right doğası gereği güvenli. Not: _Hesap Nothing ise NRE `_Hesap.Hesap` erişiminde oluşur (Left'ten bağımsız); _Hesap form yapıcısında atanıyor.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
49ArgumentOutOfRangeException (yanlış pozitif)MOD-STOKERPPRO/Controls/Islem Ekranı/OldFis/Printing.vb:338Fis.TakozEtiketMicrosoft.VisualBasic.Left/Right String.Substring'den farklı olarak kısa/Nothing metinde istisna atmaz (metnin tamamını veya "" döndürür).EVET — VB Left/Right doğası gereği güvenli.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
50ArgumentOutOfRangeException (yanlış pozitif)MOD-SISTEMERPPRO/Class/Lisans/Lisans.vb:73Lisans.SerialKey (Get)Microsoft.VisualBasic.Left/Right String.Substring'den farklı olarak kısa/Nothing metinde istisna atmaz (metnin tamamını veya "" döndürür).EVET — VB Left/Right doğası gereği güvenli. Not: seri numarası Nothing dönerse sonraki satırda NRE oluşur.HAYIRÇOK DÜŞÜKS4HAYIR90Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
51ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:392eDoviz_Ubl.RakamYaziIleDovizlitutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
52ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:393eDoviz_Ubl.RakamYaziIleDovizlitutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
53ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:435eDoviz_Ubl.RakamYaziIleDovizlitutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
54ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:436eDoviz_Ubl.RakamYaziIleDovizlitutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
55ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:438eDoviz_Ubl.RakamYaziIleDovizlitutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
56ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:439eDoviz_Ubl.RakamYaziIleDovizlitutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
57ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:450eDoviz_Ubl.RakamYaziIletutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
58ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:451eDoviz_Ubl.RakamYaziIletutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
59ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:485eDoviz_Ubl.RakamYaziIletutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
60ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:486eDoviz_Ubl.RakamYaziIletutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
61ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:488eDoviz_Ubl.RakamYaziIletutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
62ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar)MOD-EFATURADijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:489eDoviz_Ubl.RakamYaziIletutar.ToString("F2") her zaman 2 ondalık üretir; Replace('.'→',') sonrası ',' garanti → Substring güvenli. Gerçek risk: tutar negatifse lira '-12' olur ve döngüde Convert.ToInt32("-") FormatException atar (satır ~415-424 / ~465-474).KISMEN — Substring için koruma gerekmiyor; negatif/çok büyük (>18 hane) tutar için koruma yok. Çağıran: eDoviz_Ubl.vb:91 (yalnız RakamYaziIle kullanılıyor); Ice.SendInvoHAYIRÇOK DÜŞÜKS3HAYIR85Negatif tutarlı belge gönderiminde 'Entegrator faturayı Kabul Etmedi. Hata oluştu!...' mesajı.Math.Abs(tutar) ile çalışıp işareti ayrıca yazmak; tutar aralığı kontrolü.YANLIŞ POZİTİF (kapalı)
63InvalidCastException (yanlış pozitif)MOD-RAPORERPPRO/Designer/DosPrint/DosPrint.vb:469DosReportField.NewFontName/FontSize/FontStyle DBNull iseEVET — Satır 468 üç alan için DBNull kontrolü var; Try/Catch (boş Catch) içinde. FontSize sayısal olmayan metin içerirse CType→Decimal hatası yutulur, nesne kısmen yükHAYIRÇOK DÜŞÜKS4EVET85Yok.Değişiklik gerekmez (isteğe bağlı: Catch'te loglama).YANLIŞ POZİTİF (kapalı)
64InvalidCastException (yanlış pozitif)MOD-RAPORERPPRO/Designer/DosPrint/DosPrint.vb:503DosReportField.TOListFontName/FontSize/FontStyle DBNull iseEVET — Satır 502 DBNull kontrolü; Try/Catch içinde.HAYIRÇOK DÜŞÜKS4EVET85Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
65InvalidCastException (yanlış pozitif)MOD-SISTEMCodeDesigner/CodeDesigner/UiDesigner/RibbonDesigner/Ribbon.vb:580RibbonItemCollection.RetriveDataIcon DBNull iseEVET — Satır 579 DBNull kontrolü; Try/Catch içinde. Bozuk resim verisinde Byte2Image ArgumentException atabilir (yutulur).HAYIRÇOK DÜŞÜKS4EVET85Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
66IndexOutOfRangeException (kolon yok) — DBNull yanlış pozitifMOD-EFATURADijitalFatura/Common/ERPFatura.vb:77ERPFatura.New(RecordId)Convert.ToString(DBNull) "" döndürür, istisna atmaz. Gerçek risk: Muhasebe.GetEFatura sonuç kümesinde 'MADENKODU' kolonu yoksa DR("MADENKODU") IndexOutOfRangeException atar.KISMEN — Satır 48-155 tek bir Try/Catch (boş Catch) içinde: istisna sonrası kalan TÜM alanlar (DovizMiktar, DovizTLKuru, Entegrator bilgileri, limitler) yüklenmez; fHasREVETDÜŞÜKS2EVET60MADEN faturası eksik tutar/kur ve entegratör bilgisiyle gönderilmeye çalışılır; entegratör reddi veya hatalı belge.Alan başına ayrı güvenli okuma (HasColumn + TryGet); Catch'te loglama ve HasRecord=False.AÇIK
67ArgumentOutOfRangeException (Substring)MOD-EFATURADijitalFatura/Common/ERPFatura.vb:79ERPFatura.New(RecordId)Cari.IslemDetaylari.DovizKodu 3 karakterden kısa ise (boş string '' NULL değildir → DBNull koruması geçer). DovizKodu FrmEFaturaBas.vb:262 `Left(Transaction.Kodu,3)` ile yazılır; Kodu kısa/boş bir stok kodu ise 1-2 karakter kaydedilir.KISMEN — DBNull kontrolü var, uzunluk kontrolü yok. Dış Try/Catch (boş) istisnayı yutar ve satır 82+ alanları (DovizMiktar, DovizTLKuru, DolarKuru zaten okundu ama EntUsEVETDÜŞÜKS2EVET75E-belge kısmen yüklenmiş nesneyle gönderilir: tutar 0 / entegratör kimlik bilgisi boş → entegratör hatası; kullanıcı nedeni anlayamaz.`If s.Length >= 3 Then s.Substring(0,3) Else s`; Catch'te loglama.AÇIK
68ArgumentOutOfRangeException (Substring) [SUBSTRING adayı, aynı satır]MOD-EFATURADijitalFatura/Common/ERPFatura.vb:79ERPFatura.New(RecordId)Bkz. DBNULL_CAST kaydı (aynı satır).KISMEN — Aynı.EVETDÜŞÜKS2EVET75Aynı.Aynı.AÇIK
69InvalidCastException (yanlış pozitif) — mantıksal 'fail-open'MOD-FINANSERPPRO/Class/Dao/Finans.BankaAltinOperasyonu.vb:139BankaAltinOperasyonu.HasTransactionCount(*) asla NULL dönmez; SQL/bağlantı hatasında InternalDb.ExecuteScalar Nothing döner ve CInt(Nothing)=0 → istisna yok. Ancak fonksiyon False (işlem yok) döner: hata durumunda silme/iptal engeli devre dışı kalır.HAYIR — İstisna yönünden güvenli; Nothing→'işlem yok' yorumu fail-open. Aynı desen Cari.Hesap.HasTransaction (Cari.Hesap.vb:733-741) ve Cari.Kart.vb'de DeleteAt öncesi HAYIRDÜŞÜKS2EVET85SQL hatası MsgBox'ı sonrası silme işlemi devam edebilir.ExecuteScalar Nothing dönerse True (güvenli taraf) döndürmek veya istisnayı yukarı fırlatmak.YANLIŞ POZİTİF (kapalı)
70InvalidCastException (CInt(DBNull)) + yutulan SqlExceptionMOD-GENELERPPRO/DataLayout/DBBaseClass.vb:74DBBase.InsertSCOPE_IDENTITY() NULL dönerse (identity kolonu olmayan tablo) CInt(DBNull) InvalidCastException; ayrıca INSERT'teki her SqlException (kısıt, tip hatası) aynı Catch'e düşer.KISMEN — Try/Catch var; Catch bağlantıyı kapatır, mesaj/log yok → RecId=0 → Insert False döner. Kullanıcıya nedeni gösterilmez.EVETDÜŞÜKS3EVET80Kayıt sessizce kaydedilmez; çağıran yalnızca False alır.Catch'te ex.Message'ı göster/logla; ExecuteScalar sonucunu DBNull kontrolüyle oku.AÇIK
71InvalidCastException (yanlış pozitif) — fail-openMOD-GENELERPPRO/Class/Module/Extention.vb:100Extention.FindRecord`Nothing > 0` VB late-binding ile False döner (istisna yok); DBNull > 0 InvalidCastException atardı ama Count(*) NULL dönmez.HAYIR — SQL hatasında Nothing → False → 'mükerrer yok' sonucu ile devam (fail-open).HAYIRÇOK DÜŞÜKS3EVET85Hata sonrası mükerrer kayıt kontrolü atlanır.Nothing kontrolü ekleyip True döndürmek.YANLIŞ POZİTİF (kapalı)
72InvalidCastException (CInt(DBNull))MOD-SISTEMCodeDesigner/CodeDesigner/DynamicData/DynamicData.vb:105DynamicData.InsertSCOPE_IDENTITY() NULL dönerseEVET — Try/Catch → MsgBox(ex.Message) + Return False.EVETÇOK DÜŞÜKS4HAYIR80Teknik hata kutusu.DBNull kontrolü.AÇIK
73SqlException / InvalidCastException (yeniden fırlatılır)MOD-EFATURADijitalFatura/Common/ERPFatura.vb:634ERPFatura.SaveMERGE sorgusu SqlException atarsa (kısıt, tip, bağlantı) veya `output inserted.*` ilk kolonu int değilse; Catch → `Throw New Exception(ex.Message, ex)`.KISMEN — İstisna sarılıp yeniden fırlatılır. Çağıran FrmEFaturaBas.FormSave (`If ERP_Fatura.Save = True`, satır 313) ve Extention.vb:62 Try/Catch içinde DEĞİL → ApplicatEVETDÜŞÜKS2HAYIR75E-fatura kaydında yakalanmamış hata (AutoErrorHandle'a bağlı olarak hata formu veya sessiz).Çağıranlarda Try/Catch + kullanıcı mesajı; Save içinde SqlException'ı özel mesaja çevirmek.AÇIK
74NullReferenceException (Dt Nothing)MOD-SISTEMERPPRO/Class/Lisans/Lisans.vb:54Lisans.FirstDateRows(0): GROUP BY'sız aggregate sorgu her zaman 1 satır döndürür → IndexOutOfRange olmaz. Ancak SQL/bağlantı hatasında InternalDb.DataTable Nothing döner → `Dt.Rows` NRE.HAYIR — Nothing kontrolü yok. Çağrı zinciri: Utils.CallLisansControl ← Program.Init (Try/Catch → ShowDebugOutput) ve FrmMainForm.FormInit (IsLicensed, Try yok).EVETDÜŞÜKS2HAYIR80Lisans kontrolünde çökme/hata formu (bağlantı sorununda).`If Dt IsNot Nothing AndAlso Dt.Rows.Count > 0`.AÇIK
75NullReferenceException (Dt Nothing)MOD-SISTEMERPPRO/Class/Lisans/Lisans.vb:55Lisans.FirstDateAynı.HAYIR — Aynı.EVETDÜŞÜKS2HAYIR80Aynı.Aynı.AÇIK
76ArgumentException ('Cannot set Column to be null') — Rows(0) yanlış pozitifMOD-SISTEMERPPRO/Designer/Parameters/Parameter.vb:73Parameters.CreateDataTableRows(0) satır 71 `Tb.Rows.Add()` ile garanti. Gerçek risk: p.Value Is Nothing olan parametre (AddObject(New Cari.Islem) ile String özellikleri Nothing gelir) DataRow'a Nothing yazılınca ArgumentException.HAYIR — Satır 65-69 Nothing için String kolonu açar ama satır 73'te DBNull'a çevirmez. Çağıran FrmControllerEkle.vb:39 Try dışında.EVETORTAS4HAYIR70Agent/koşul editörü açılırken yakalanmamış hata.`Tb.Rows(0).Item(p.Name) = If(p.Value, DBNull.Value)`.AÇIK
77IndexOutOfRangeException (kullanılmıyor)MOD-GENELERPPRO/Class/Module/Extention.vb:542Extention.GetRowCellValue(DataTable,Row,ColName)Row indeksi Rows.Count'tan büyükseHAYIR — Koruma yok; ancak kod tabanında bu DataTable uzantısına çağrı bulunamadı (tüm GetRowCellValue çağrıları GridView üzerinde).HAYIRÇOK DÜŞÜKS4HAYIR80Yok.Kullanılmıyorsa kaldırmak; kullanılacaksa sınır kontrolü.YANLIŞ POZİTİF (kapalı)
78IndexOutOfRangeException (kullanılmıyor)MOD-GENELERPPRO/Class/Module/Extention.vb:546Extention.GetRowCellValue(DataTable,Row,ColIndex)Aynı.HAYIR — Çağıran bulunamadı.HAYIRÇOK DÜŞÜKS4HAYIR80Yok.Aynı.YANLIŞ POZİTİF (kapalı)
79DivideByZeroException (yanlış pozitif — Double bölme)MOD-FINANSERPPRO/Class/Module/ExtensionEx.vb:27Calc.VergiHaricTutarBSMVOran = (1000 + GlobalSettings.BSMV).Divide(1000); yalnızca BSMV = -1000 ise 0 olur. Double bölme istisna atmaz (Infinity/NaN döner).EVET — Divide uzantısı sıfır korumalı; BSMVOran gerçekçi olarak >0. Ayar tablosundan (Sistem.Settings.BSMV) gelir.HAYIRÇOK DÜŞÜKS3EVET90Yok (teorik: BSMV=-1000 ayarında tutarlar Infinity/NaN görünür).Değişiklik gerekmez; isteğe bağlı BSMVOran<=0 kontrolü.YANLIŞ POZİTİF (kapalı)
80DivideByZeroException (yanlış pozitif — Double bölme)MOD-FINANSERPPRO/Class/Module/ExtensionEx.vb:34Calc.BSMVBSMVOran = (1000 + GlobalSettings.BSMV).Divide(1000); yalnızca BSMV = -1000 ise 0 olur. Double bölme istisna atmaz (Infinity/NaN döner).EVET — Divide uzantısı sıfır korumalı; BSMVOran gerçekçi olarak >0. Ayar tablosundan (Sistem.Settings.BSMV) gelir.HAYIRÇOK DÜŞÜKS3EVET90Yok (teorik: BSMV=-1000 ayarında tutarlar Infinity/NaN görünür).Değişiklik gerekmez; isteğe bağlı BSMVOran<=0 kontrolü.YANLIŞ POZİTİF (kapalı)
81DivideByZeroException (yanlış pozitif — Double bölme)MOD-FINANSERPPRO/Class/Module/ExtensionEx.vb:42Calc.IslemFiyatBSMVOran = (1000 + GlobalSettings.BSMV).Divide(1000); yalnızca BSMV = -1000 ise 0 olur. Double bölme istisna atmaz (Infinity/NaN döner).EVET — Divide uzantısı sıfır korumalı; BSMVOran gerçekçi olarak >0. Ayar tablosundan (Sistem.Settings.BSMV) gelir.HAYIRÇOK DÜŞÜKS3EVET90Yok (teorik: BSMV=-1000 ayarında tutarlar Infinity/NaN görünür).Değişiklik gerekmez; isteğe bağlı BSMVOran<=0 kontrolü.YANLIŞ POZİTİF (kapalı)
82DivideByZeroException (yanlış pozitif)MOD-GENELERPPRO/Class/Module/Utils.vb:40Utils.ResizeImagebmSource.Height = 0 olamaz (Bitmap yapıcısı 0 boyut kabul etmez); VB '/' Double bölme.EVET — TargetHeight/TargetWidth 0 ise satır 38 `New Bitmap(TargetWidth, TargetHeight)` ArgumentException atar (bölmeden önce).HAYIRÇOK DÜŞÜKS4EVET85Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
83DivideByZeroException (yanlış pozitif)MOD-GENELERPPRO/Class/Module/Utils.vb:41Utils.ResizeImageAynı.EVET — Aynı.HAYIRÇOK DÜŞÜKS4EVET85Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
84DivideByZeroException (yanlış pozitif)MOD-GENELERPPRO/Class/Module/Utils.vb:56Utils.ResizeImagenSourceAspectRatio = Width/Height > 0 (Bitmap boyutları >0).EVET — Aynı.HAYIRÇOK DÜŞÜKS4EVET85Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
85DivideByZeroException (yanlış pozitif)MOD-GENELERPPRO/Class/Module/Extention.vb:430Extention.DivideValue2 = 0EVET — `If Value1 <> 0 And Value2 <> 0` koruması var; sıfırda 0 döner (sessiz).HAYIRÇOK DÜŞÜKS4EVET95Yok (sıfır bölen durumunda sonuç 0 görünür).Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
86DivideByZeroException (yanlış pozitif)MOD-GENELERPPRO/Class/Module/Extention.vb:472Extention.DivideValue2 = 0EVET — `If Value1 <> 0 And Value2 <> 0` koruması var; sıfırda 0 döner (sessiz).HAYIRÇOK DÜŞÜKS4EVET95Yok (sıfır bölen durumunda sonuç 0 görünür).Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
87DivideByZeroException (yanlış pozitif)MOD-GENELERPPRO/Class/Module/Extention.vb:480Extention.DivideValue2 = 0EVET — `If Value1 <> 0 And Value2 <> 0` koruması var; sıfırda 0 döner (sessiz).HAYIRÇOK DÜŞÜKS4EVET95Yok (sıfır bölen durumunda sonuç 0 görünür).Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
88DivideByZeroException (Decimal bölme)MOD-EFATURADijitalFatura/Common/ERPFatura.vb:958ERPFatura.ValidateOverUsdLimitDolarKuru (Decimal) = 0 ise. Kaynaklar: FrmEFaturaBas.vb:295-299 → USD belgede DovizTLKuru (Fiyat 0 ise 0); diğerlerinde `IIf(Transaction.UsdKur=0, Program.GetKur("USD"), UsdKur)` → GetKur, günün USD kuru 0 girilmişse K.Alis=0 döndürür (Program.vb:260-268); DB'den yüklemede DolarKuru NULL/0 kayıt.HAYIR — Sıfır kontrolü yok. SendToEntegrator (satır 779) çağrıları FrmEFaturaBas.vb:338 ve FrmEFaturaListesi.vb:39'da Try/Catch DIŞINDA → Application.ThreadException.EVETORTAS2HAYIR85E-döviz belgesi gönderirken 'Attempted to divide by zero' yakalanmamış hata (AutoErrorHandle=1: hata formu; 0: sessiz, belge gönderilmez).`If DolarKuru = 0 Then ErrorText = "USD kuru tanımsız" : Return False`; FormSave'de DolarKuru=0 doğrulaması.AÇIK
89OverflowException (Infinity → Decimal)MOD-EFATURADijitalFatura/Entegrators/Ice.vb:368Ice.Get_eDoviz_BelgeEDocument.Dolar_TL_Kuru (Double) = 0 → Double bölme Infinity → CDec(Infinity) OverflowException ('Value was either too large or too small for a Decimal').KISMEN — Sıfır kontrolü yok; SendInvoice (Ice.vb:116-194) Try/Catch ile yakalar → DeleteSettings(Auth) + EDovizResponseResult(Message='Hata oluştu!...').EVETORTAS2HAYIR85'Entegrator faturayı Kabul Etmedi. Hata oluştu!Value was either too large or too small for a Decimal.' mesajı; belge gönderilmez, log e-postası atılır.Gönderim öncesi Dolar_TL_Kuru/Doviz_TL_Kuru/DovizMiktar > 0 doğrulaması ve anlaşılır Türkçe mesaj.AÇIK
90OverflowException (Infinity → Decimal)MOD-EFATURADijitalFatura/Entegrators/Ice.vb:376Ice.Get_eDoviz_BelgeEDocument.DovizMiktar (Double) = 0 → Decimal/Double → Infinity → `Dim Fiyat As Decimal` atamasında OverflowException. Cari.Islem.Save Miktar=0'ı reddettiği için (Cari.Islem.vb:513) düşük olasılık.KISMEN — SendInvoice Try/Catch.EVETDÜŞÜKS2HAYIR80Entegratör hata mesajı.Miktar>0 doğrulaması.AÇIK
91DivideByZeroException (Decimal)MOD-EFATURADijitalFatura/Entegrators/Ice.vb:449Ice.Get_eDoviz_BelgetlKarsilikKuru (Decimal) = 0: Kıymetli maden SATIM'da tlKarsilikKuru = Fiyat = (Tutar - Vergi)/Miktar → Tutar 0 veya Vergi=Tutar ise 0.KISMEN — SendInvoice Try/Catch.EVETDÜŞÜKS2HAYIR80Entegratör hata mesajı ('Attempted to divide by zero').Kur sıfır kontrolü.AÇIK
92OverflowException (Infinity → Decimal)MOD-EFATURADijitalFatura/Entegrators/MySoft.vb:557MySoft.Get_eDoviz_BelgeDolar_TL_Kuru = 0 → Double bölme Infinity → `CalculationRate As Decimal` atamasında OverflowException.KISMEN — SendInvoice (MySoft.vb:108-174) Try/Catch.EVETORTAS2HAYIR85Entegratör hata mesajı.Kur > 0 doğrulaması.AÇIK
93Sessiz (Double Infinity → JSON)MOD-EFATURADijitalFatura/Entegrators/MySoft.vb:586MySoft.Get_eDoviz_BelgeDoviz_TL_Kuru = 0 → 1/0 = Infinity (Double, istisna yok) → CalculationRate (Double) Infinity → JSON'a 'Infinity' yazılır → entegratör reddi.HAYIR — Koruma yok; .NET istisnası oluşmaz.EVETDÜŞÜKS2EVET70Entegratör belgeyi reddeder; sebep anlaşılmaz.Kur > 0 doğrulaması.AÇIK
94Sessiz (Double Infinity)MOD-EFATURADijitalFatura/Entegrators/MySoft.vb:591MySoft.Get_eDoviz_BelgeVergiHaric_Tutar = 0 → Infinity (Double).HAYIR — Koruma yok.EVETDÜŞÜKS3EVET65Hatalı oran; entegratör reddi.Tutar > 0 doğrulaması.AÇIK
95Sessiz (Double Infinity → JSON)MOD-EFATURADijitalFatura/Entegrators/Ticari1.vb:347Ticari1.Get_eDoviz_BelgeDoviz_TL_Kuru = 0 → 1/0 Infinity (Double özellik).HAYIR — Koruma yok.EVETDÜŞÜKS2EVET70Entegratör reddi.Kur > 0 doğrulaması.AÇIK
96Sessiz (Double Infinity/NaN → JSON)MOD-EFATURADijitalFatura/Entegrators/Ticari1.vb:348Ticari1.Get_eDoviz_BelgeDolar_TL_Kuru = 0 → Infinity/NaN.HAYIR — Koruma yok.EVETDÜŞÜKS2EVET70Entegratör reddi.Kur > 0 doğrulaması.AÇIK
97FormatException (Convert.ToDecimal("∞"))MOD-EFATURADijitalFatura/Entegrators/Uyumsoft.vb:844Uyumsoft.Get_eDoviz_BelgeDolar_TL_Kuru = 0 → Infinity.ToString("N5") = '∞' → Convert.ToDecimal FormatException.KISMEN — SendInvoice (Uyumsoft.vb:141-194) Try/Catch.EVETORTAS2HAYIR85Entegratör hata mesajı ('Input string was not in a correct format').Kur > 0 doğrulaması.AÇIK
98FormatException (Convert.ToDecimal("∞"))MOD-EFATURADijitalFatura/Entegrators/Uyumsoft.vb:863Uyumsoft.Get_eDoviz_BelgeSATIM'da Doviz_TL_Kuru = 0 → 1/0 → '∞' → FormatException.KISMEN — SendInvoice Try/Catch.EVETDÜŞÜKS2HAYIR80Entegratör hata mesajı.Kur > 0 doğrulaması.AÇIK
99SqlException (tarih boş) — CDate yanlış pozitifMOD-CARIERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmSeriIslem.vb:157FrmSeriIslem.ListRefreshTxtBTarih/TxtSTarih DateEdit temizlenirse EditValue Nothing → CDate(Nothing) = #01.01.0001# (istisna yok) → SQL'e '0001-01-01' gider; parametre DATETIME ise SqlException (InternalDb MsgBox).KISMEN — Metot Try/Catch (boş) içinde; InternalDb.DataTable hatayı MsgBox ile gösterir. Tarih boş kontrolü yok.EVETDÜŞÜKS4HAYIR60Tarih temizlenip listelenirse SQL hata kutusu, liste boş.TxtBTarih.EditValue Is Nothing ise varsayılan tarih atamak.AÇIK
100SqlException (tarih boş) — CDate yanlış pozitifMOD-CARIERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:977iScreen.ListRefreshAynı desen (BarEditItem DateEdit).KISMEN — Try/Catch (boş, iScreen.vb:960/993); InternalDb MsgBox.EVETDÜŞÜKS4HAYIR60Aynı.Aynı.AÇIK
101DivideByZero yanlış pozitif (ToNumeric + Divide korumalı)MOD-CARIERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.vb:260ParakendeSatis.DovizHesaplaTxtTutar/TxtDovKuru boş veya sayısal olmayanEVET — .ToNumeric = Val (istisna atmaz), .Divide sıfır korumalı → kur 0 iken sonuç 0 (sessiz).HAYIRÇOK DÜŞÜKS4EVET90Kur boşken döviz tutarı 0 görünür.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
102InvalidCastException (yanlış pozitif)MOD-SIPARISERPPRO/Form/Siparis/FrmAddAccount.vb:14FrmAddAccount.HesapId (Get)EditValue DBNull/boş string iseEVET — `IsNot Nothing` kontrolü var; LookUpEdit veri kaynağı Integer Id → DBNull beklenmez.HAYIRÇOK DÜŞÜKS4HAYIR85Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)
103InvalidCastException (CInt(DBNull)/CInt(""))MOD-SIPARISERPPRO/Form/Siparis/FrmSiparisGirisi.vb:70FrmSiparisGirisi.SaveDataCmbHesap (GridLookupEdit).EditValue DBNull veya boş string ise; Nothing → CInt(Nothing)=0 sorunsuz. Veri kaynağı Integer Id olduğundan düşük olasılık.HAYIR — Kontrol yok; SaveData Try/Catch dışında.EVETÇOK DÜŞÜKS3HAYIR50Sipariş kaydında yakalanmamış hata (teorik).`Val("" & CmbHesap.EditValue)` kullanmak.AÇIK
104InvalidCastException (yanlış pozitif)MOD-SIPARISERPPRO/Form/Siparis/FrmSipModelEkle.vb:115FrmSipModelEkle.ModelDegistiCmbKodu.EditValue Nothing iseEVET — Satır 89 `If CmbKodu.EditValue Is Nothing` dalı; Else dalında Integer Id.HAYIRÇOK DÜŞÜKS4HAYIR85Yok.Değişiklik gerekmez.YANLIŞ POZİTİF (kapalı)