Hata mesajı: java.lang.NullPointerException - ne yapmalı?
Derleyici yazılı programı biri hariç her şey için kontrol eder: çalışma zamanı istisnaları. Böyle bir istisna, örneğin, Java programlama dilinde temel java.lang paketine ait olan NullPointerException'dır.
Derleyici java.lang.NullPointerException öğesini ne zaman atar?
İstisnalar genellikle test aşamasında ortaya çıkar. Bu özellikle programlama söz konusu olduğunda genellikle yeni başlayanlarla karşılaşılan NullPointerException için geçerlidir. Daha spesifik olarak, boş bir nesneye işaret eden bir değişkendir. Örneğin, hata aşağıdaki durumlarda oluşur:
- Bir dizinin öğesine erişildiğinde ve öğenin değeri olmadığında.
- Değeri sıfır olan bir dizinin uzunluğunu sorgularken.
- Yeni işleç olmadan bir nesne oluşturulmuşsa ve başvuru değişkeni ile işlemler gerçekleştirilmeye çalışılırsa.
- Örneğimizde, uzaktan kumanda pratik olarak gerçek yazıcı nesnesine işaret eden referans değişkendir (pointer). Bu değişken, yazıcıya hata mesajlarının gönderilmesi, mürekkep seviyelerinin hesaplanması vb. İşlemleri gerçekleştirmek için kullanılır. Uzaktan kumanda boş bir nesneyi gösteriyorsa veya hiçbir nesneyi belirtmiyorsa, başvuru değişkeni sıfır değerine sahiptir.
Hata mesajı nasıl düzeltilir?
İstisnalar, Java altında " try {...} catch {(Exception e)} " bloğu ile yakalanabilir . Ancak, bu yöntem her zaman gerekli değildir ve aynı zamanda ek yük oluşturur. Aşağıdaki ipuçlarını akılda tutmak daha iyidir:
- Nesnenin oluşturulup oluşturulmadığını kontrol edin. Aksi durumda, " sample object name = new sample object (variable); " komut sözdizimini kullanarak oluşturun.
- Hata ayıklama modunda, kodunuzu satır satır kontrol edebilir ve ara sonuçları görüntüleyebilirsiniz. Oluşturduğunuz nesnenin üzerine yazmadığınızdan veya NULL değeriyle kaydetmediğinizden emin olun. Bu, nesnenin artık kullanılamadığı ve diğer nesne komutlarının hatayı tetiklediği anlamına gelir.
- İpucu: Nesnenizi sık sık değiştirirseniz, bir if sorgusu (" if (örnek nesne ! = NULL) {...} ") kullanarak temel değişikliklerden önce ve sonra nesnenizi kontrol etmeye alışın.
Bir sonraki pratik ipucunda, Java'da Lambda İfadelerini nasıl kullanabileceğinizi açıklayacağız.