Merhabalar,

uygulamamda bir MySQL sorgulamasi yapiyorum. Eger sorgulamadan gelen cevap dolu ise herhangi bir sorun yok, fakat MySQL tableleri bos ise (NULL) veya null return degerleri geri gelirse, ugrastigim uygulamam cöküyor.

Simdiye kadar uyguladigim yöntemler kisaca söyle;

String getValue = getValuesFromMySql(1);  // return degeri String + parameter int

if (getValue.equals("")  getValue = "0";
if (getValue.length() <= 0 ) getValue = "0";
if (getValue.isEmpty()) getValue = "0";

ve sonuc eger NULL veya null ise aldigim hata mesaji sürekli " java.lang.NullPointerException: ....." seklinde...

Uygulamami NULL veya null a karsi nasil bir önlem ile koruyabilirim?

Her türlü fikir icin simdiden tesekkürler.

Erkan Kaplan

soruldu: 16 Mar, 07:07

kaplanerkan's gravatar image

kaplanerkan
1031613
cevap kabul oranı: 0%


permanent link

cevaplandı: 16 Mar, 08:37

BatuhanApaydin's gravatar image

BatuhanApaydin
1501
cevap kabul oranı: 12%

Tesekkürler. Bu yöntemde de ise yariyor, fakat ben TextUtils.isEmpty(String) seklinde kullandigim simdilik.

(16 Mar, 09:01) kaplanerkan kaplanerkan's gravatar image

Şimdi ilk olarak exception'ı nerde fırlattığı önemli.Eğer sen getValuesFromMysql methodu içerisinde exception fırlatılıyorsa try catch ile exception'ı yakala ve geri döndürdüğün değere null set et ardından return et getValue değişkenine bu null değer set olmuş olacak ve if(getValue==null) diyerek null değer kontrolü de yapabilirsin.Anladığım kadarıyla soruyu açıklamaya çalıştım umarım faydalı olur.

permanent link

cevaplandı: 16 Mar, 07:46

BatuhanApaydin's gravatar image

BatuhanApaydin
1501
cevap kabul oranı: 12%

Hayir hayir...getValuesFromMySql bölümünde bir sorun yok, ki eger tablelerin ici DOLU olursa sorunsuzca calisiyor..Herhangi bir NULLPOINTER hatasi gelmiyor..

Fakat belirttigim gibi, mysql string return degeri NULL veya null olursa IF kismi yani kontrol ederken uygulama cöküyor.

not: if(getValue==null) ilede denedim..Sonuc ayni...Uygulama cöküyor...

(16 Mar, 08:03) kaplanerkan kaplanerkan's gravatar image

abi peki debug yapıp getValue değerine method dönüşü ne set oluyor bunu denedin mi yoksa daha bir değer set olmadan uygulama çöküyor mu ? getValue değişkenin null değer kontrolünü yaptığın if e bir debug koy bakalım oraya geliyor mu uygulama

(16 Mar, 08:05) BatuhanApaydin BatuhanApaydin's gravatar image

Ana uygulamayi yazan arkadaslar tableleri CREATE ederken sanirim "Allow NULL" olarak secmisler ve bundan dolayi, eger kullanici o bölümü bos birakirsa, INSERT esnasinda NULL olarak kaydediliyor.

(16 Mar, 08:06) kaplanerkan kaplanerkan's gravatar image

Anlıyorum.Dediğim gibi bir debug yaparak deneyebilir misin?

(16 Mar, 08:07) BatuhanApaydin BatuhanApaydin's gravatar image

Bir de kücük bir tavsiye değişken ismine biraz daha mantıklı isimler vermen daha güzel olacaktır.getValue değişken ismi uygulamayı geliştiren diğer arkadaşlar için method ismi gibi anlaşılıp karışıklığa sebep olabilir.

(16 Mar, 08:09) BatuhanApaydin BatuhanApaydin's gravatar image

Resimdede görüldügü gibi, sonuc dolu gelirse sorun yok,ki genelde dolu. Fakat bos gelme ihtimalide de, iste bu durumda cöküyor.

alt text

permanent link

cevaplandı: 16 Mar, 08:16

kaplanerkan's gravatar image

kaplanerkan
1031613
cevap kabul oranı: 0%

değiştirildi: 16 Mar, 08:16

Tesekkürler. Oda isime yariyor.

Fakat defalarca bakmama ragmen, gözümden kacmis sanirim. Cevap burdaymis:-)

http://stackoverflow.com/questions/3598770/java-check-whether-a-string-is-not-null-and-not-empty

Tam ortalardaki cevap aradigim cözüm, yani;

TextUtils.isEmpty(String)

if (TextUtils.isEmpty(getValue))  getValue = "0";

Tesekkürler.

permanent link

cevaplandı: 16 Mar, 09:00

kaplanerkan's gravatar image

kaplanerkan
1031613
cevap kabul oranı: 0%

Rica ederim kolay gelsin.

(16 Mar, 09:02) BatuhanApaydin BatuhanApaydin's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×819
×144

Soruldu: 16 Mar, 07:07

Görüntüleme: 362 kez

Son güncelleme: 16 Mar, 09:02

powered by BitNami OSQA