10. SınıfBilişim Teknolojileri
Hata Yakalama ve Ayıklama — Çalışma Sayfası
Kazanımlar, önemli noktalar ve sık yapılan hatalar tek sayfada.
Bu konuda öğrenecekleriniz
- Sözdizimi, çalışma zamanı ve mantık hatalarını ayırt eder.
- Denene-hata-yakala düzenini kurar ve son temizleme bölümünü doğru yerleştirir.
- Kullanıcıdan gelen girdileri işlenmeden önce denetler.
- Beklenen ve beklenmeyen hataları farklı yakalama biçimleriyle karşılar.
- Kullanıcıya anlaşılır bir mesaj ile geliştiriciye ayrıntılı bir kayıt gösterir.
- Hata günlüğü tutarak gerçekleşen hataları sonradan inceler.
Önemli noktalar
- Yakalanmayan bir hata, programın o satırda durmasına ve kullanıcı karşısında teknik bir hata penceresi açılmasına yol açar.
- Hata yakalama, hatayı gizlemek için değil yönetilebilir bir duruma getirmek ve kullanıcıyı doğru yönlendirmek için kullanılır.
- Denene bölümü kısa tutulursa hatanın kaynağı bulmak kolaylaşır; uzun bloklar arama alanını gereksiz genişletir.
- Tek bir blokta bütün işlemleri toplamak, hangi adımın hata verdiğini ayırt etmeyi zorlaştırır.
- Hata günlüğü tutulmadığında gerçekleşen hatalar kayıp sayılır ve aynı sorun defalarca yaşanabilir.
- Beklenmeyen hatalar için kullanıcıya genel bir uyarı gösterilir, ayrıntılı kayıt geliştirici tarafında saklanır.
- Uygulama yayına alınmadan önce yalnızca düzgün doldurulmuş formlar değil, boş ve hatalı girdiler de denenmelidir.
Formüller ve kurallar
- Hata yakalama düzeni üç parçalıdır: denenecek işlem, hata durumunda yapılacak iş, son temizliği yapan bölüm.
- Sözdizimi hatası program çalıştırılmadan önce, çalışma zamanı hatası ilgili satır çalışırken, mantık hatası ise program bittikten sonra fark edilir.
- Beklenen hata kullanıcı girdisiyle ilişkilidir, beklenmeyen hata ise sistem koşullarından doğar.
- Kullanıcıya gösterilen mesaj düz ve düzeltici olmalı, teknik ayrıntı ise günlüğe yazılmalıdır.
- Bir hata riski taşıyan işlem, denene bölümünde yalnızca kendisi ve kendisine ait denetimlerle yer almalıdır.
- Girdi denetimi, verinin programa girdiği ilk noktada yapılırsa hatalı değer hiçbir işlemde kullanılmaz.
- Yakalanan her hata için zaman, hata türü ve kaynağı kaydedilmelidir.
- Denetim sonrası düzeltilen bir sorun, aynı senaryoyla yeniden sınanmadan geçerli sayılmaz.
Sık yapılan hatalar
- Boş bırakılan hata bloğu: Yakalanan hata için hiçbir işlem yapılmadan geçildiğinde hata sessizce yutulur ve kullanıcı, işlem yapıldığını sanarak sonuç bekler.
- Teknik ayrıntının kullanıcıya gösterilmesi: Hata nesnesindeki yığın izi, dosya yolu ve değişken adları doğrudan ekrana yazılırsa sıradan kullanıcı ne olup bittiğini anlamaz.
- Bütün kodun tek blokta korunması: Denene bölümüne tüm işlemler yazıldığında hata ortaya çıktığında kaynağı bulmak çok zorlaşır ve ayıklama süreci uzar.
- Girdi denetiminin kayıt anına bırakılması: Alan biçimi denetlenmeden veri işlenirse hatalı değer birden çok adıma yayılarak daha büyük sorunlar doğurur.
- Her hataya aynı mesajın verilmesi: Genel bir uyarı metni kullanıcıyı yönlendirmediği için kullanıcı hangi alanı düzelteceğini bilemez ve aynı hatayı tekrar eder.
- Günlük tutulmaması: Yalnızca ekranda uyarı gösterilen bir uygulamada hatayı geliştiriciye bildirecek bir kayıt kalmadığından aynı sorun defalarca yaşanır.
Hızlı tekrar ipuçları
- Her adımda hangi değişkenin geçerli olduğunu düşünün; geçersiz değer ilk denetimde yakalanırsa sonraki adımlar hiç çalışmaz.
- Hata mesajını ekrana yazdırmak yerine ayrı bir uyarı yordamı kullanın; aynı uyarı farklı yerlerde tekrar gerektiğinde kod kopyalanmaz.
- Kullanıcıya kısa, geliştiriciye ayrıntılı iki farklı kayıt tutun; ikisi aynı metne dönüşmemelidir.
- Hata türüne göre ayrı işlem tanımlayabilen yapıları tercih edin, çünkü sınıflandırma büyüdükçe tek bir yaklaşım yetersiz kalır.
- Ayıklama sırasında değerleri adım adım izleyin; hangi satırdan sonra beklenti ile gerçeklik ayrıştığını görmek en hızlı yöntemdir.
- Düzeltme yaptıktan sonra aynı senaryoyu yeniden çalıştırın, aksi hâlde hatanın başka bir yerde sürdüğünü fark edemezsiniz.
Kendini dene
Bu sayfayı okuduktan sonra konu anlatımını tekrar oku ve kendi cümlelerinle özetle.