javada null pointer'a ait herhangi bir şeyi çalıştırmaya, kullanmaya çalıştığımızda elimize verilen exception. hatta java özentisi .net teknolojisinde de aynısı vardır: "object reference not set to an instance of an object" gibisinden bi hata verir o da.
java ortamında, bir nesne değişkenine * bir değer atanmazsa ve bu değişken kullanılmaya çalışılırsa; örneğin bu nesnenin bir metodu kullanılmaya çalışılırsa nullpointerexception fırlatılır.
değeri null bir pointer değişken ya da unassigned de denebilir. bunu bilen null pointer assignment olayını da bilir. değeri olmayan bir pointer'a yani aslında o pointer'ın gösterdiği adrese bir veri ekleme olayıdır.
değersiz bir pointer sıfırıncı adresi işaret edecektir. bu durumda da null pointer assignment oluşur. ancak null pointer daima sıfırıncı adresi işaret etmeyebilir.
bunlardan yola çıkarak null pointer exception nedir sorusuna da cevap verebiliriz. bize bu uyarıyı derleyici değil program verir. yani bu uyarı bize bilgisayarımızın bir uyarısıdır. bilgisayar hangi adresin gösterildiğini bilemediği durumlarda böyle bir uyarı fırlatır.
.net içinse null olarak sunulan referans tipli bir değişkenin üyesine erişmeye çalışırsınız ve ortaya bu hata çıkar. örneğin bir sınıf var ve bu sınıfın nesnesi null durumda. bu sınıf içindeki bir üyeye erişmeye çalışıyorsunuz bu durumda yine aslında bir null pointer exception hatası alırsınız ancak hata mesajı olarak "Object Reference Not Set To An Instance Of An Object" böyle bir mesaj görürsünüz.
windows adlı üyenin de dediği gibi runtime hatasıdır. eğer ki karşınızda akıllı bir derleyici yoksa derleme esnasında kendisini fark ettirmez.
şu kısa entry'de size java, c ve .net içinde oluşan bu hatayı anlatmaya çalıştım. gelelim hangisi için hangisi var.
java: null pointer exception,
c: null pointer assignment,
.net: object reference not set to an instance of an object ya da null reference exception