Merhaba,

C# kullanıyorum ve Javayı yeni ögreniyorum. Linux ortamında çalışıyorum ve kodları konsolda derliyorum.

File ya da BufferedReader sınıfını kullanırken derleyici kodları ancak try-catch içine alırsam ya da throws ile fırlatırsam kabul ediyor. Bunun nedeni nedir? Bazı kodlarda hata denetimi yapmak java da şart mı? Örneğin:

public static void main(String[] args) {

    File f=new File("ornek.txt");
    BufferedReader br=new BufferedReader(new FileReader(f));
    System.out.println(br.readLine());

    System.out.println("end...");
}

kodu derlemiyor ve bana unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown diyor.Ancak aşağıdaki şekilleri kabul ediyor. İstisna oluştuğunda mainden dışarı fırlatılırsa;

public static void main(String[] args) throws IOException {

    File f=new File("ornek.txt");
    BufferedReader br=new BufferedReader(new FileReader(f));
    System.out.println(br.readLine());

    System.out.println("end...");
}

ya da try-cath içine alırsam

public static void main(String[] args) {

    try
    {
        File f=new File("ornek.txt");
        BufferedReader br=new BufferedReader(new FileReader(f));
        System.out.println(br.readLine());
    }
    catch(IOException e)
    {
       System.out.println(e.toString());
    }

    System.out.println("end...");
}

sormak istediğim BufferedReader ya da File ile çalışırken hata denetimi yapmamız şart mıdır?

soruldu: 12 Oca '15, 05:27

zafer's gravatar image

zafer
41591019
cevap kabul oranı: 11%

Bu konuda bir şeyler söylemek isteyen yok mu?

(23 Oca '15, 02:27) zafer zafer's gravatar image

Java'da 2 tür istisna vardır. Biri checked(kontrol edilmesi gerekli olanlar), bir diğeri unchecked(kontrol edilmesine gerek olmayanlar). Checked türündeki istisnaların atılma olasılığı bulunan metodların imzalarında "throws CheckedException" ibaresi bulunur. Unchecked istisnalarda ise böyle bir zorunluluk yoktur.

Checked istisnalar Exception sınıfından, unchecked istisnalar ise RuntimeException sınıfından türetilir. Mesela NullPointerException, RuntimeException'dan türemiştir ve kodda bunu yakalamak veya işlemek zorunluluğumuz yoktur. Ama örnekte verdiğin IOException, Exception üst sınıfından türediği için derleyici bu konuda bir şeyler yapmamız için bizi uyarır.

permanent link

cevaplandı: 23 Oca '15, 06:42

baybatu's gravatar image

baybatu
915
cevap kabul oranı: 0%

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:

×21
×2
×1

Soruldu: 12 Oca '15, 05:27

Görüntüleme: 430 kez

Son güncelleme: 23 Oca '15, 06:42

powered by BitNami OSQA