| 1 | InvalidCastException (yanlış pozitif) | MOD-SISTEM | ERPPRO/AmlScan/MasakForm.vb:73 | MasakForm.MasakSorgula | spinHassasiyet.Value boş/sayısal olmayan değer olursa | EVET — spinHassasiyet bir DevExpress SpinEdit; .Value her zaman Decimal döner, Nothing/boş metin olamaz. Convert.ToInt32(Decimal) atmaz. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Belirti yok (yanlış pozitif). | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 2 | InvalidCastException (CDate) | MOD-RAPOR | ERPPRO/BTRANS/Class/CreateBTransDoviz.vb:12 | CreateBTransDoviz.BtnCreateXML_Click | Kullanı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.TryP | EVET | ORTA | S3 | HAYIR | 85 | Teknik hata kutusu; XML üretilmez. | DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak. | AÇIK |
| 3 | InvalidCastException (CDate) | MOD-RAPOR | ERPPRO/BTRANS/Class/CreateBTransDoviz.vb:13 | CreateBTransDoviz.BtnCreateXML_Click | Kullanı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.TryP | EVET | ORTA | S3 | HAYIR | 85 | Teknik hata kutusu; XML üretilmez. | DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak. | AÇIK |
| 4 | InvalidCastException (CDate) | MOD-RAPOR | ERPPRO/BTRANS/Class/CreateBTransDoviz.vb:14 | CreateBTransDoviz.BtnCreateXML_Click | Kullanı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.TryP | EVET | ORTA | S3 | HAYIR | 85 | Teknik hata kutusu; XML üretilmez. | DateTime.TryParseExact('MM.yyyy' / 'dd.MM.yyyy') ile doğrulayıp Türkçe uyarı vermek; DateEdit kullanmak. | AÇIK |
| 5 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Dao/Dynamic/Class/Base/Table.vb:45 | Table.New | TableName '.' içermezse | EVET — Satır 44 `If InStr(TableName, ".") > 0` koruması var; (0) indeksi her zaman mevcuttur. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 6 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Dao/Dynamic/Class/Base/Table.vb:46 | Table.New | TableName '.' içermezse | EVET — InStr koruması var; '.' varsa Split en az 2 eleman verir ('Sema.' → ikinci eleman boş string, istisna yok). | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 7 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:25 | Compiler.ClassName (Get) | Code içinde 'partial class'/'public class' bulunduğunda | EVET — 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ÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 8 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Dao/Dynamic/Class/Compiler.vb:29 | Compiler.ClassName (Get) | Code içinde 'partial class'/'public class' bulunduğunda | EVET — 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ÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 9 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | CodeDesigner/CodeDesigner/Common/Compiler.vb:25 | Compiler.ClassName (Get) | Code içinde 'partial class'/'public class' bulunduğunda | EVET — 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ÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 10 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | CodeDesigner/CodeDesigner/Common/Compiler.vb:29 | Compiler.ClassName (Get) | Code içinde 'partial class'/'public class' bulunduğunda | EVET — 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ÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 11 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Dao/Dynamic/Class/Attribute/Fields.vb:34 | Fields.TableName (Get) | Name '.' içermezse | EVET — `String.IsNullOrEmpty(Name) = False AndAlso InStr(Name, ".") > 0` koruması var. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 12 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Dao/Dynamic/Class/Attribute/Fields.vb:43 | Fields.SchemaName (Get) | Name '.' içermezse | EVET — Aynı koruma (satır 42). | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 13 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Dao/Dynamic/Class/Attribute/Fields.vb:120 | Fields.ToClass | — | EVET — (0) indeksi her zaman mevcut; TableName zaten '.' sonrası parçayı döndürür. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 14 | IndexOutOfRangeException / InvalidCastException | MOD-STOK | ERPPRO/Controls/Islem Ekranı/Ekran/FrmBlokTakozGirisi.vb:17 | FrmBlokTakozGirisi.ListRefresh | TxtSubeId.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çi | EVET | ÇOK YÜKSEK | S4 | EVET | 90 | Belirti 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 |
| 15 | IndexOutOfRangeException / InvalidCastException | MOD-STOK | ERPPRO/Controls/Islem Ekranı/Ekran/FrmBlokTakozGirisi.vb:18 | FrmBlokTakozGirisi.ListRefresh | TxtSubeId.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çi | EVET | ÇOK YÜKSEK | S4 | EVET | 90 | Belirti 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 |
| 16 | IndexOutOfRangeException / InvalidCastException | MOD-STOK | ERPPRO/Controls/Islem Ekranı/Ekran/FrmBlokTakozGirisi.vb:19 | FrmBlokTakozGirisi.ListRefresh | TxtSubeId.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çi | EVET | ÇOK YÜKSEK | S4 | EVET | 90 | Belirti 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 |
| 17 | IndexOutOfRangeException (yanlış pozitif) | MOD-STOK | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmTakozGiris.vb:789 | FrmTakozGiris.TxtBarkod_Validated | — | EVET — (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ÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 18 | IndexOutOfRangeException (yanlış pozitif) | MOD-STOK | ERPPRO/Controls/Islem Ekranı/Ekran/iFTakozGiris.vb:791 | iFTakozGiris.TxtBarkod_Validated | — | EVET — Aynı desen; (0) her zaman var, ToNumeric = Val. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 19 | IndexOutOfRangeException (yanlış pozitif) | MOD-STOK | ERPPRO/Form/Tanımlamalar/Stok/FrmTakozSuKontrol.vb:68 | FrmTakozSuKontrol.BarkodValidate | — | EVET — (0) her zaman var; ayrıca Try/Catch içinde. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 20 | IndexOutOfRangeException (yanlış pozitif) | MOD-GENEL | ERPPRO/Controls/Grid/DataList.vb:50 | DataList.DataBind | DecCount '.' içermezse | EVET — Satır 49 `If InStr(DecCount, ".") > 0` koruması var. Ayrıca metot On Error Resume Next ile başlıyor. | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 21 | IndexOutOfRangeException (yanlış pozitif) | MOD-GENEL | ERPPRO/Controls/Grid/SimpleList.vb:187 | SimpleList.RetriveData | DecCount '.' içermezse | EVET — Satır 186 InStr koruması var; On Error Resume Next aktif. | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 22 | IndexOutOfRangeException (yanlış pozitif) | MOD-CARI | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:78 | iScreen.InitPermission | Buton metni '-' içermezse | EVET — Aynı satırda `If InStr(c.Text, "-") > 0` koruması var. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 23 | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) | MOD-CARI | ERPPRO/Class/Ext/Genel.DosyaEx.vb:81 | Dosya.ShowFile | Split('.')(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. | EVET | ORTA | S3 | HAYIR | 80 | Teminat/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 |
| 24 | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) | MOD-CARI | ERPPRO/Form/Tanımlamalar/Cari/FrmCariKartEkle.vb:234 | FrmCariKartEkle.TeminatlarButtonClick | Split('.')(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. | EVET | ORTA | S3 | HAYIR | 80 | Teminat/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 |
| 25 | UnauthorizedAccessException / DirectoryNotFoundException (IndexOutOfRange yanlış pozitif, farklı gerçek risk) | MOD-CARI | ERPPRO/Form/Tanımlamalar/Cari/FrmTeminatEkle.vb:58 | FrmTeminatEkle.ShowFile | Split('.')(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. | EVET | ORTA | S3 | HAYIR | 80 | Teminat/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 |
| 26 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Configuration/ConfigurationForm.vb:303 | ConfigurationForm.Read | DataSource ',' içermezse | EVET — Satır 302 InStr koruması + Try/Catch. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 27 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Configuration/ConfigurationForm.vb:304 | ConfigurationForm.Read | DataSource ',' içermezse | EVET — Aynı koruma. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 28 | IndexOutOfRangeException | MOD-SISTEM | CodeDesigner/CodeDesigner/Controls/UiFormDesigner/UiForm.vb:54 | UiForm.LoadDesigner | Designer 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 üret | EVET | DÜŞÜK | S4 | EVET | 70 | Tasarı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 |
| 29 | IndexOutOfRangeException | MOD-SISTEM | CodeDesigner/CodeDesigner/Controls/UiFormDesigner/UiForm.vb:55 | UiForm.LoadDesigner | Designer 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 üret | EVET | DÜŞÜK | S4 | EVET | 70 | Tasarı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 |
| 30 | IndexOutOfRangeException (yanlış pozitif) | MOD-SISTEM | CodeDesigner/CodeDesigner/Controls/UiFormDesigner/UiForm.vb:99 | UiForm.ReadProperties | — | EVET — InStr>0 koruması var; (0) her zaman mevcut. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 31 | NullReferenceException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Dao/Dynamic/Controls/DynamicList.vb:41 | DynamicList.SelectedItem (Get) | Odaklı satır yoksa | EVET — Satır 42 `If Row IsNot Nothing` koruması var. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 32 | NullReferenceException | MOD-DIGER | ERPPRO/Controls/Islem Ekranı/OldFis/EtiketDesignList.vb:17 | EtiketDesignList.SimpleList1_ButtonClick | Liste 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). | EVET | ORTA | S4 | EVET | 75 | Butona 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 |
| 33 | Tüm istisnalar (maskeleme) | MOD-CARI | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/UrunListesi.vb:59 | UrunListesi.LoadStok | DSX.TABLE.ListOfMaden/ListOfEmtia vb. Nothing ise veya öğe eşlemesinde istisna oluşursa | KISMEN — On Error Resume Next tüm hataları yutar; liste eksik/boş kalır. Loglama yok. | EVET | DÜŞÜK | S3 | EVET | 65 | Seri 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 |
| 34 | Tüm istisnalar (maskeleme) | MOD-DIGER | ERPPRO/Controls/Islem Ekranı/OldFis/EtiketDesignList.vb:16 | EtiketDesignList.SimpleList1_ButtonClick | Bkz. satır 17 kaydı | KISMEN — On Error Resume Next; NRE ve alt form hataları yutulur. | EVET | ORTA | S4 | EVET | 75 | Buton tepkisiz. | Try/Catch + Nothing kontrolü. | AÇIK |
| 35 | TargetInvocationException / InvalidCastException (maskeleme) | MOD-RAPOR | ERPPRO/Controls/Islem Ekranı/OldFis/EtiketDetay.vb:329 | EtiketDetay.GetValue | Item 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. | EVET | DÜŞÜK | S4 | EVET | 60 | Etikette ilgili alan boş basılır. | Try/Catch ile alan bazlı hata metni ('#ERR') basmak. | AÇIK |
| 36 | Tüm istisnalar (maskeleme) | MOD-GENEL | ERPPRO/Controls/Grid/DataList.vb:36 | DataList.DataBind | InternalDb(Query).DataTable Nothing dönerse (SQL hatası) veya DevExpress kolon işlemlerinde istisna olursa | KISMEN — On Error Resume Next; SQL hatası InternalDb tarafından MsgBox ile gösterilir, sonrası sessiz. | EVET | DÜŞÜK | S4 | EVET | 70 | Liste boş; ek mesaj yok. | Try/Catch; DataTable Nothing kontrolü. | AÇIK |
| 37 | Tüm istisnalar (maskeleme) | MOD-GENEL | ERPPRO/Controls/Grid/DataListBase.vb:54 | DataListBase.DataBind | ActiveObject Nothing ise veya görsel/veri bağlama hatası | KISMEN — On Error Resume Next. | EVET | DÜŞÜK | S4 | EVET | 70 | Liste/resim yüklenmez, mesaj yok. | Try/Catch + loglama. | AÇIK |
| 38 | Tüm istisnalar (maskeleme) | MOD-GENEL | ERPPRO/Controls/Grid/SimpleList.vb:173 | SimpleList.RetriveData | SQL/DevExpress hataları | KISMEN — On Error Resume Next. | EVET | DÜŞÜK | S4 | EVET | 70 | Liste boş; mesaj yok. | Try/Catch + loglama. | AÇIK |
| 39 | Tüm istisnalar (maskeleme) | MOD-DIGER | ERPPRO/Controls/Takvim/Class/Appointment.vb:28 | Appointment.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. | EVET | DÜŞÜK | S4 | EVET | 60 | Randevu eksik bilgiyle kaydedilir; mesaj yok. | Try/Catch, hatalı alan için varsayılan atama ve loglama. | AÇIK |
| 40 | InvalidCastException (CBool("")) | MOD-DIGER | ERPPRO/Controls/Takvim/Class/TicketList.vb:65 | TicketList.GridView1_CustomDrawCell | IsActive veya Status hücresi NULL ise `CBool("" & Nothing)` = CBool("") InvalidCastException atar. | KISMEN — On Error Resume Next; hücre renklendirmesi atlanır. | EVET | ORTA | S4 | EVET | 75 | Bazı bilet satırları renklendirilmez. | Val()/Boolean.TryParse ile güvenli dönüşüm. | AÇIK |
| 41 | NullReferenceException (hata işleyici içinde) | MOD-SISTEM | ERPPRO/Class/Ext/ApplicationExt.vb:16 | MyApplication.ShowDebugOutput | 1) 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). | EVET | ORTA | S1 | EVET | 80 | Uygulama 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 |
| 42 | Tüm istisnalar (maskeleme) | MOD-SISTEM | CodeDesigner/CodeDesigner/Controls/UiFormDesigner/UiForm.vb:30 | UiForm.LoadDesigner | Designer 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. | EVET | DÜŞÜK | S4 | EVET | 70 | Form tasarımcısında eksik kontroller. | Try/Catch + hata listesi. | AÇIK |
| 43 | Tüm istisnalar (maskeleme) | MOD-SISTEM | CodeDesigner/CodeDesigner/Controls/Properties/Properties.vb:220 | Properties.ToString | Late-bound .FieldName/.Mask erişimi desteklemeyen kontrol tipinde MissingMemberException | KISMEN — On Error Resume Next; satır atlanır. | EVET | DÜŞÜK | S4 | EVET | 65 | Üretilen designer kodunda eksik özellik satırı. | Tip kontrolü (TypeOf) ile üretim. | AÇIK |
| 44 | ArgumentOutOfRangeException (yanlış pozitif) | MOD-EFATURA | ERPPRO/Controls/Islem Ekranı/Ekran/FrmEFaturaBas.vb:262 | FrmEFaturaBas.FormSave | 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: Kodu 3 karakterden kısa ise DovizKodu eksik yazılır (istisna yok, veri riski) — ERPFatura.vb:79 Substring(0,3) ile yen | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 45 | ArgumentOutOfRangeException (yanlış pozitif) | MOD-CARI | ERPPRO/Controls/Islem Ekranı/Ekran/iFSeriIslem.vb:26 | iFSeriIslem.formDataBind | 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. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 46 | ArgumentOutOfRangeException (yanlış pozitif) | MOD-CARI | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmStokIslem.vb:89 | FrmStokIslem.DataBind | 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. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 47 | ArgumentOutOfRangeException (yanlış pozitif) | MOD-CARI | ERPPRO/Class/Ext/Cari.ListItem.vb:19 | ListItem.New | 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. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 48 | ArgumentOutOfRangeException (yanlış pozitif) | MOD-CARI | ERPPRO/Class/Dao/Islem/FrmExLimit.vb:61 | FrmExLimit.Send | 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: _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ÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 49 | ArgumentOutOfRangeException (yanlış pozitif) | MOD-STOK | ERPPRO/Controls/Islem Ekranı/OldFis/Printing.vb:338 | Fis.TakozEtiket | 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. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 50 | ArgumentOutOfRangeException (yanlış pozitif) | MOD-SISTEM | ERPPRO/Class/Lisans/Lisans.vb:73 | Lisans.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ÜŞÜK | S4 | HAYIR | 90 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 51 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:392 | eDoviz_Ubl.RakamYaziIleDovizli | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 52 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:393 | eDoviz_Ubl.RakamYaziIleDovizli | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 53 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:435 | eDoviz_Ubl.RakamYaziIleDovizli | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 54 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:436 | eDoviz_Ubl.RakamYaziIleDovizli | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 55 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:438 | eDoviz_Ubl.RakamYaziIleDovizli | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 56 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:439 | eDoviz_Ubl.RakamYaziIleDovizli | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 57 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:450 | eDoviz_Ubl.RakamYaziIle | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 58 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:451 | eDoviz_Ubl.RakamYaziIle | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 59 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:485 | eDoviz_Ubl.RakamYaziIle | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 60 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:486 | eDoviz_Ubl.RakamYaziIle | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 61 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:488 | eDoviz_Ubl.RakamYaziIle | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 62 | ArgumentOutOfRangeException (yanlış pozitif) / FormatException (negatif tutar) | MOD-EFATURA | DijitalFatura/Entegrators/Ice/eDoviz_Ubl.vb:489 | eDoviz_Ubl.RakamYaziIle | tutar.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.SendInvo | HAYIR | ÇOK DÜŞÜK | S3 | HAYIR | 85 | Negatif 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ı) |
| 63 | InvalidCastException (yanlış pozitif) | MOD-RAPOR | ERPPRO/Designer/DosPrint/DosPrint.vb:469 | DosReportField.New | FontName/FontSize/FontStyle DBNull ise | EVET — 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ük | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 85 | Yok. | Değişiklik gerekmez (isteğe bağlı: Catch'te loglama). | YANLIŞ POZİTİF (kapalı) |
| 64 | InvalidCastException (yanlış pozitif) | MOD-RAPOR | ERPPRO/Designer/DosPrint/DosPrint.vb:503 | DosReportField.TOList | FontName/FontSize/FontStyle DBNull ise | EVET — Satır 502 DBNull kontrolü; Try/Catch içinde. | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 85 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 65 | InvalidCastException (yanlış pozitif) | MOD-SISTEM | CodeDesigner/CodeDesigner/UiDesigner/RibbonDesigner/Ribbon.vb:580 | RibbonItemCollection.RetriveData | Icon DBNull ise | EVET — Satır 579 DBNull kontrolü; Try/Catch içinde. Bozuk resim verisinde Byte2Image ArgumentException atabilir (yutulur). | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 85 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 66 | IndexOutOfRangeException (kolon yok) — DBNull yanlış pozitif | MOD-EFATURA | DijitalFatura/Common/ERPFatura.vb:77 | ERPFatura.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; fHasR | EVET | DÜŞÜK | S2 | EVET | 60 | MADEN 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 |
| 67 | ArgumentOutOfRangeException (Substring) | MOD-EFATURA | DijitalFatura/Common/ERPFatura.vb:79 | ERPFatura.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 EntUs | EVET | DÜŞÜK | S2 | EVET | 75 | E-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 |
| 68 | ArgumentOutOfRangeException (Substring) [SUBSTRING adayı, aynı satır] | MOD-EFATURA | DijitalFatura/Common/ERPFatura.vb:79 | ERPFatura.New(RecordId) | Bkz. DBNULL_CAST kaydı (aynı satır). | KISMEN — Aynı. | EVET | DÜŞÜK | S2 | EVET | 75 | Aynı. | Aynı. | AÇIK |
| 69 | InvalidCastException (yanlış pozitif) — mantıksal 'fail-open' | MOD-FINANS | ERPPRO/Class/Dao/Finans.BankaAltinOperasyonu.vb:139 | BankaAltinOperasyonu.HasTransaction | Count(*) 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 | HAYIR | DÜŞÜK | S2 | EVET | 85 | SQL 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ı) |
| 70 | InvalidCastException (CInt(DBNull)) + yutulan SqlException | MOD-GENEL | ERPPRO/DataLayout/DBBaseClass.vb:74 | DBBase.Insert | SCOPE_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. | EVET | DÜŞÜK | S3 | EVET | 80 | Kayı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 |
| 71 | InvalidCastException (yanlış pozitif) — fail-open | MOD-GENEL | ERPPRO/Class/Module/Extention.vb:100 | Extention.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ÜŞÜK | S3 | EVET | 85 | Hata sonrası mükerrer kayıt kontrolü atlanır. | Nothing kontrolü ekleyip True döndürmek. | YANLIŞ POZİTİF (kapalı) |
| 72 | InvalidCastException (CInt(DBNull)) | MOD-SISTEM | CodeDesigner/CodeDesigner/DynamicData/DynamicData.vb:105 | DynamicData.Insert | SCOPE_IDENTITY() NULL dönerse | EVET — Try/Catch → MsgBox(ex.Message) + Return False. | EVET | ÇOK DÜŞÜK | S4 | HAYIR | 80 | Teknik hata kutusu. | DBNull kontrolü. | AÇIK |
| 73 | SqlException / InvalidCastException (yeniden fırlatılır) | MOD-EFATURA | DijitalFatura/Common/ERPFatura.vb:634 | ERPFatura.Save | MERGE 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 → Applicat | EVET | DÜŞÜK | S2 | HAYIR | 75 | E-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 |
| 74 | NullReferenceException (Dt Nothing) | MOD-SISTEM | ERPPRO/Class/Lisans/Lisans.vb:54 | Lisans.FirstDate | Rows(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). | EVET | DÜŞÜK | S2 | HAYIR | 80 | Lisans kontrolünde çökme/hata formu (bağlantı sorununda). | `If Dt IsNot Nothing AndAlso Dt.Rows.Count > 0`. | AÇIK |
| 75 | NullReferenceException (Dt Nothing) | MOD-SISTEM | ERPPRO/Class/Lisans/Lisans.vb:55 | Lisans.FirstDate | Aynı. | HAYIR — Aynı. | EVET | DÜŞÜK | S2 | HAYIR | 80 | Aynı. | Aynı. | AÇIK |
| 76 | ArgumentException ('Cannot set Column to be null') — Rows(0) yanlış pozitif | MOD-SISTEM | ERPPRO/Designer/Parameters/Parameter.vb:73 | Parameters.CreateDataTable | Rows(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. | EVET | ORTA | S4 | HAYIR | 70 | Agent/koşul editörü açılırken yakalanmamış hata. | `Tb.Rows(0).Item(p.Name) = If(p.Value, DBNull.Value)`. | AÇIK |
| 77 | IndexOutOfRangeException (kullanılmıyor) | MOD-GENEL | ERPPRO/Class/Module/Extention.vb:542 | Extention.GetRowCellValue(DataTable,Row,ColName) | Row indeksi Rows.Count'tan büyükse | HAYIR — 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ÜŞÜK | S4 | HAYIR | 80 | Yok. | Kullanılmıyorsa kaldırmak; kullanılacaksa sınır kontrolü. | YANLIŞ POZİTİF (kapalı) |
| 78 | IndexOutOfRangeException (kullanılmıyor) | MOD-GENEL | ERPPRO/Class/Module/Extention.vb:546 | Extention.GetRowCellValue(DataTable,Row,ColIndex) | Aynı. | HAYIR — Çağıran bulunamadı. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 80 | Yok. | Aynı. | YANLIŞ POZİTİF (kapalı) |
| 79 | DivideByZeroException (yanlış pozitif — Double bölme) | MOD-FINANS | ERPPRO/Class/Module/ExtensionEx.vb:27 | Calc.VergiHaricTutar | BSMVOran = (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ÜŞÜK | S3 | EVET | 90 | Yok (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ı) |
| 80 | DivideByZeroException (yanlış pozitif — Double bölme) | MOD-FINANS | ERPPRO/Class/Module/ExtensionEx.vb:34 | Calc.BSMV | BSMVOran = (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ÜŞÜK | S3 | EVET | 90 | Yok (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ı) |
| 81 | DivideByZeroException (yanlış pozitif — Double bölme) | MOD-FINANS | ERPPRO/Class/Module/ExtensionEx.vb:42 | Calc.IslemFiyat | BSMVOran = (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ÜŞÜK | S3 | EVET | 90 | Yok (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ı) |
| 82 | DivideByZeroException (yanlış pozitif) | MOD-GENEL | ERPPRO/Class/Module/Utils.vb:40 | Utils.ResizeImage | bmSource.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ÜŞÜK | S4 | EVET | 85 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 83 | DivideByZeroException (yanlış pozitif) | MOD-GENEL | ERPPRO/Class/Module/Utils.vb:41 | Utils.ResizeImage | Aynı. | EVET — Aynı. | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 85 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 84 | DivideByZeroException (yanlış pozitif) | MOD-GENEL | ERPPRO/Class/Module/Utils.vb:56 | Utils.ResizeImage | nSourceAspectRatio = Width/Height > 0 (Bitmap boyutları >0). | EVET — Aynı. | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 85 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 85 | DivideByZeroException (yanlış pozitif) | MOD-GENEL | ERPPRO/Class/Module/Extention.vb:430 | Extention.Divide | Value2 = 0 | EVET — `If Value1 <> 0 And Value2 <> 0` koruması var; sıfırda 0 döner (sessiz). | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 95 | Yok (sıfır bölen durumunda sonuç 0 görünür). | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 86 | DivideByZeroException (yanlış pozitif) | MOD-GENEL | ERPPRO/Class/Module/Extention.vb:472 | Extention.Divide | Value2 = 0 | EVET — `If Value1 <> 0 And Value2 <> 0` koruması var; sıfırda 0 döner (sessiz). | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 95 | Yok (sıfır bölen durumunda sonuç 0 görünür). | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 87 | DivideByZeroException (yanlış pozitif) | MOD-GENEL | ERPPRO/Class/Module/Extention.vb:480 | Extention.Divide | Value2 = 0 | EVET — `If Value1 <> 0 And Value2 <> 0` koruması var; sıfırda 0 döner (sessiz). | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 95 | Yok (sıfır bölen durumunda sonuç 0 görünür). | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 88 | DivideByZeroException (Decimal bölme) | MOD-EFATURA | DijitalFatura/Common/ERPFatura.vb:958 | ERPFatura.ValidateOverUsdLimit | DolarKuru (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. | EVET | ORTA | S2 | HAYIR | 85 | E-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 |
| 89 | OverflowException (Infinity → Decimal) | MOD-EFATURA | DijitalFatura/Entegrators/Ice.vb:368 | Ice.Get_eDoviz_Belge | EDocument.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!...'). | EVET | ORTA | S2 | HAYIR | 85 | '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 |
| 90 | OverflowException (Infinity → Decimal) | MOD-EFATURA | DijitalFatura/Entegrators/Ice.vb:376 | Ice.Get_eDoviz_Belge | EDocument.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. | EVET | DÜŞÜK | S2 | HAYIR | 80 | Entegratör hata mesajı. | Miktar>0 doğrulaması. | AÇIK |
| 91 | DivideByZeroException (Decimal) | MOD-EFATURA | DijitalFatura/Entegrators/Ice.vb:449 | Ice.Get_eDoviz_Belge | tlKarsilikKuru (Decimal) = 0: Kıymetli maden SATIM'da tlKarsilikKuru = Fiyat = (Tutar - Vergi)/Miktar → Tutar 0 veya Vergi=Tutar ise 0. | KISMEN — SendInvoice Try/Catch. | EVET | DÜŞÜK | S2 | HAYIR | 80 | Entegratör hata mesajı ('Attempted to divide by zero'). | Kur sıfır kontrolü. | AÇIK |
| 92 | OverflowException (Infinity → Decimal) | MOD-EFATURA | DijitalFatura/Entegrators/MySoft.vb:557 | MySoft.Get_eDoviz_Belge | Dolar_TL_Kuru = 0 → Double bölme Infinity → `CalculationRate As Decimal` atamasında OverflowException. | KISMEN — SendInvoice (MySoft.vb:108-174) Try/Catch. | EVET | ORTA | S2 | HAYIR | 85 | Entegratör hata mesajı. | Kur > 0 doğrulaması. | AÇIK |
| 93 | Sessiz (Double Infinity → JSON) | MOD-EFATURA | DijitalFatura/Entegrators/MySoft.vb:586 | MySoft.Get_eDoviz_Belge | Doviz_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. | EVET | DÜŞÜK | S2 | EVET | 70 | Entegratör belgeyi reddeder; sebep anlaşılmaz. | Kur > 0 doğrulaması. | AÇIK |
| 94 | Sessiz (Double Infinity) | MOD-EFATURA | DijitalFatura/Entegrators/MySoft.vb:591 | MySoft.Get_eDoviz_Belge | VergiHaric_Tutar = 0 → Infinity (Double). | HAYIR — Koruma yok. | EVET | DÜŞÜK | S3 | EVET | 65 | Hatalı oran; entegratör reddi. | Tutar > 0 doğrulaması. | AÇIK |
| 95 | Sessiz (Double Infinity → JSON) | MOD-EFATURA | DijitalFatura/Entegrators/Ticari1.vb:347 | Ticari1.Get_eDoviz_Belge | Doviz_TL_Kuru = 0 → 1/0 Infinity (Double özellik). | HAYIR — Koruma yok. | EVET | DÜŞÜK | S2 | EVET | 70 | Entegratör reddi. | Kur > 0 doğrulaması. | AÇIK |
| 96 | Sessiz (Double Infinity/NaN → JSON) | MOD-EFATURA | DijitalFatura/Entegrators/Ticari1.vb:348 | Ticari1.Get_eDoviz_Belge | Dolar_TL_Kuru = 0 → Infinity/NaN. | HAYIR — Koruma yok. | EVET | DÜŞÜK | S2 | EVET | 70 | Entegratör reddi. | Kur > 0 doğrulaması. | AÇIK |
| 97 | FormatException (Convert.ToDecimal("∞")) | MOD-EFATURA | DijitalFatura/Entegrators/Uyumsoft.vb:844 | Uyumsoft.Get_eDoviz_Belge | Dolar_TL_Kuru = 0 → Infinity.ToString("N5") = '∞' → Convert.ToDecimal FormatException. | KISMEN — SendInvoice (Uyumsoft.vb:141-194) Try/Catch. | EVET | ORTA | S2 | HAYIR | 85 | Entegratör hata mesajı ('Input string was not in a correct format'). | Kur > 0 doğrulaması. | AÇIK |
| 98 | FormatException (Convert.ToDecimal("∞")) | MOD-EFATURA | DijitalFatura/Entegrators/Uyumsoft.vb:863 | Uyumsoft.Get_eDoviz_Belge | SATIM'da Doviz_TL_Kuru = 0 → 1/0 → '∞' → FormatException. | KISMEN — SendInvoice Try/Catch. | EVET | DÜŞÜK | S2 | HAYIR | 80 | Entegratör hata mesajı. | Kur > 0 doğrulaması. | AÇIK |
| 99 | SqlException (tarih boş) — CDate yanlış pozitif | MOD-CARI | ERPPRO/Controls/Islem Ekranı/Ekran/SeriIslemEkrani/FrmSeriIslem.vb:157 | FrmSeriIslem.ListRefresh | TxtBTarih/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. | EVET | DÜŞÜK | S4 | HAYIR | 60 | Tarih temizlenip listelenirse SQL hata kutusu, liste boş. | TxtBTarih.EditValue Is Nothing ise varsayılan tarih atamak. | AÇIK |
| 100 | SqlException (tarih boş) — CDate yanlış pozitif | MOD-CARI | ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.vb:977 | iScreen.ListRefresh | Aynı desen (BarEditItem DateEdit). | KISMEN — Try/Catch (boş, iScreen.vb:960/993); InternalDb MsgBox. | EVET | DÜŞÜK | S4 | HAYIR | 60 | Aynı. | Aynı. | AÇIK |
| 101 | DivideByZero yanlış pozitif (ToNumeric + Divide korumalı) | MOD-CARI | ERPPRO/Controls/Islem Ekranı/Ekran/ParakendeSatis.vb:260 | ParakendeSatis.DovizHesapla | TxtTutar/TxtDovKuru boş veya sayısal olmayan | EVET — .ToNumeric = Val (istisna atmaz), .Divide sıfır korumalı → kur 0 iken sonuç 0 (sessiz). | HAYIR | ÇOK DÜŞÜK | S4 | EVET | 90 | Kur boşken döviz tutarı 0 görünür. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 102 | InvalidCastException (yanlış pozitif) | MOD-SIPARIS | ERPPRO/Form/Siparis/FrmAddAccount.vb:14 | FrmAddAccount.HesapId (Get) | EditValue DBNull/boş string ise | EVET — `IsNot Nothing` kontrolü var; LookUpEdit veri kaynağı Integer Id → DBNull beklenmez. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 85 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |
| 103 | InvalidCastException (CInt(DBNull)/CInt("")) | MOD-SIPARIS | ERPPRO/Form/Siparis/FrmSiparisGirisi.vb:70 | FrmSiparisGirisi.SaveData | CmbHesap (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ÜŞÜK | S3 | HAYIR | 50 | Sipariş kaydında yakalanmamış hata (teorik). | `Val("" & CmbHesap.EditValue)` kullanmak. | AÇIK |
| 104 | InvalidCastException (yanlış pozitif) | MOD-SIPARIS | ERPPRO/Form/Siparis/FrmSipModelEkle.vb:115 | FrmSipModelEkle.ModelDegisti | CmbKodu.EditValue Nothing ise | EVET — Satır 89 `If CmbKodu.EditValue Is Nothing` dalı; Else dalında Integer Id. | HAYIR | ÇOK DÜŞÜK | S4 | HAYIR | 85 | Yok. | Değişiklik gerekmez. | YANLIŞ POZİTİF (kapalı) |