Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

EDUTIME Java Day 8 Serdar TÜRKEL. İstisna Yönetimi  İstisna tanımı  İstisna yönetiminin amacının anlaşılması  Java’daki istisna türlerinin anlaşılması.

Benzer bir sunumlar


... konulu sunumlar: "EDUTIME Java Day 8 Serdar TÜRKEL. İstisna Yönetimi  İstisna tanımı  İstisna yönetiminin amacının anlaşılması  Java’daki istisna türlerinin anlaşılması."— Sunum transkripti:

1 EDUTIME Java Day 8 Serdar TÜRKEL

2 İstisna Yönetimi  İstisna tanımı  İstisna yönetiminin amacının anlaşılması  Java’daki istisna türlerinin anlaşılması  İstisna yönetim modelinin tanımlanması

3 Hatanın Tanımı  Özel bir hata türüdür  Çalışma zamanında meydana gelir  Programı çalıştırırken gerçekleşen normal olmayan durumlar, istisnalara neden olur.  Bu durumlarla ilgilenilmez ise, programımızın çalışması durdurulabilir.

4 İstisna işlemenin amacı  Sistem çökmelerini ve programın istenmeyen bir şekilde durdurulma şansını en küçüğe indirmek  Örnek Bir sayıyı sıfıra bölmek sıfıra bölme hatası oluşturacaktır. Buda programı sonlandıracaktır.Bir sayıyı sıfıra bölmek sıfıra bölme hatası oluşturacaktır. Buda programı sonlandıracaktır.

5 İstisna yönetimi  İstisna oluştuğunda, o istisnayı temsil eden bir nesne oluşturulur.  Bu nesne istisnanın olduğu metoda geçirilir  Bu nesne istisna hakkında detaylı bilgiye sahiptir, ve bu bilgi daha sonradan işlenebilir.  Java’nın sağladığı ‘throwable’ sınıfı Exception sınıfının üst sınıfıdır.

6 İstisna işleme modeli  İstisna işleme modeli ‘yakala ve gönder’ modeli olarakta bilinir  Hata oluştuğunda bir istisna atılır ve ve bir blok içinde yakalanır  İstisnaları yönetmek için bazı anahtar sözcükler try try catch catch throw throw throws throws finally finally

7 İstisna işleme modelinin yapısı  Sözdizimi try { …. } catch(Exception e1) { …. } catch(Exception e2) { …. } catch(Exception eN) { …. } finally { …. }

8 ‘Gönder ve yakala’ modelinin avantajları  Programcı, hata durumu ile sadece gerekli olduğu yerlerde ilgilenmek zorundadır. Her seviyede ilgilenmek zorunda değildir.  İstisna işleyicide hata mesajı bulundurulabilir

9 ‘ try ’ ve ‘ catch ’ Blokları  İstisna işleme modelini gerçekleştirmek için kullanılır.  ‘try’ bloku, çalıştırılabilir deyimler kümesinden oluşur.  BU deyimler çalıştırılırken istisnalar gönderebilir. İstisna göndermesi muhtemel bir metot da ‘try’ bloğunda bulunabilir.  Bir ‘try’ bloğundan sonra bir veya daha fazla ‘catch’ bloku gelebilir  Bunlar ‘try’ bloğundan gönderilen istisnaları yakalar.

10 ‘ try ’ ve ‘ catch ’ Blokları  Her tür istisnayı yakalayabilmek için istisna tipi ‘Exception’ olarak verilir catch(Exception e)  Atılan istisna tipi bilinmediği zaman, ‘Exception’ sınıfı hatayı yakalamak için kullanılabilir  ‘try catch’ blo ğ undan geçirilen hata, uygun bir ‘catch’ blo ğ u ile karşılaşıncaya kadar bütün ‘catch’ bloklarını dener yada program sonlandırılır

11 ‘ try ’ ve ‘ catch ’ Blokları  Sözdizimi try{doFileProcess();} Catch(Exception e){ System.err.println(“Hata: ”+ e.toString); System.err.println(“Hata: ”+ e.toString); e.printStackTrace(); e.printStackTrace();}

12 ‘ try ’ ve ‘ catch ’ Blokları  Genel hata yakalama public class tryCatch1{ public static void main(String args[]){ try { Integer dizi[]=new Integer[10]; for(int i=0;i<20;i++){ dizi[i]=i;} }catch (Exception ex){ System.out.println ("Bu hatayi ben yakaladim :"); ex.printStackTrace(); }}}

13 Çoklu catch blokları  Çoklu ‘catch()’ blokları, çeşitli istisnaları ayrı ayrı işlemeye yarar  Örnek try{ doFileProcessing(); displayResults(); doFileProcessing(); displayResults(); } catch(LookupException e) { handleLookupException(e); handleLookupException(e); } catch(Exception e) catch(Exception e){ System.err.println(“Error:”+e.printStackTrace()); System.err.println(“Error:”+e.printStackTrace()); }

14 Çoklu catch blokları  İç ‘try ve catch’ blokları kullanılırsa, ilk önce içerdeki blok işlenir.  İçteki ‘try’ blokunda atılan istisna, takip eden ‘catch’ bloklarında yakalanır  Eğer eşleşen bir ‘catch’ bloku bulunamazsa, dıştaki ‘try’ blokunun ‘catch’ blokları ile eşleştirilir  Eğer gene eşleşemez ise Java Runtime Enviroment istisna ile ilgilenir

15 Çoklu Catch Blokları import java.io.*; public class tryCatch2{ public static void main(String args[]){ try { Integer dizi[]=new Integer[10]; for(int i=0;i<10;i++){ dizi[i]=i;} File f=new File("edu.ttt"); System.out.println (new FileInputStream(f)); }catch (ArrayIndexOutOfBoundsException ex){ System.out.println ("Dizi miktarini asan veri girisi :"); ex.printStackTrace(); }catch(FileNotFoundException ex){ }catch(FileNotFoundException ex){ System.out.println ("Dosya Bulunamadi :"); System.out.println ("Dosya Bulunamadi :"); ex.printStackTrace(); ex.printStackTrace(); }catch(Exception ex){ }catch(Exception ex){ System.out.println ("genel hata :"); ex.printStackTrace();}}}

16 ‘finally’ Blok  İstisna olduğunda bütün temizlik işlerini yürütür.  ‘try’ bloku ile kullanılabilir  Sistem kaynaklarını geri veren yada mesaj gösteren deyimlerden oluşur: Bir dosyanın kapanması Bir dosyanın kapanması Bir sonuç setinin kapanması (Veri tabanı) Bir sonuç setinin kapanması (Veri tabanı) Tanımlanan veri tabanı bağlantısının sonlandırılıması Tanımlanan veri tabanı bağlantısının sonlandırılıması

17 ‘finally’ Blok  Örnek try{….}finally{….}

18 ‘finally’ Blok  İsteğe bağlıdır  ‘ finally ’ bloku istisna oluşsun yada oluşmasın işletirlir. Try bloku Finaly bloku Catch bloku Finaly bloku Hata oluşmadıHata oluştu

19 Finally Blok import java.io.*; public class tryCatch3{ public static void main(String args[]) throws IOException{ FileInputStream fis; FileOutputStream fos; File f=new File("dosya.txt"); try{ fis=new FileInputStream(f); fos=new FileOutputStream(new File("dosya2.txt")); int okunan; while((okunan=fis.read())!=-1){fos.write(okunan);} }catch (Exception ex){ }catch (Exception ex){ ex.printStackTrace(); ex.printStackTrace(); }finally { }finally { System.out.println ("program sonlandi"); System.out.println ("program sonlandi"); } } }

20 ‘ throw ’ ve ‘ throws ’ deyimleri ile kullanıcı tanımlı istisnalar  İstisnalar, ‘ throw ’ anahtar sözcüğü yardımı ile gönderilir.  ‘ throw ’ anahtar sözcüğü bir istisnanın oluştuğunu belirtir.  ‘throw’ sözcüğünün işleneni ‘ Throwable ’ sınıfından türemiş bir sınıfın nesnesidir.  ‘ throw ’ deyimine örnek: try{ if (flag < 0) { throw new benim istisnam( ) ; // kullanıcı tanımlı throw new benim istisnam( ) ; // kullanıcı tanımlı}}

21 ‘ throw ’ ve ‘ throws ’ deyimleri ile kullanıcı tanımlı istisnalar  Bir metot, birden fazla istisna gönderebilir.  Bir metot, birden fazla istisna gönderebilir.  ‘ throw ’ anahtar sözcüğünün çoklu istisnaları işlemek için nasıl kullanıldığı  public class Example { public void exceptionExample( ) throws ExException, LookupException { try{ // statements } catch(ExException exmp) {….} catch(LookupException lkpex) {….} }}

22 ‘ throw ’ ve ‘ throws ’ deyimleri ile kullanıcı tanımlı istisnalar  ‘ Exception ’ sınıfı, ‘ Throwable ’ arayüzünü gerçekleştirir ve istisnalar için bazı kullanışlı özellikler sunar  ‘Exception’ sınıfının alt sınıfını oluşturmanın avantaju, yeni bistisna türürnün diğer ‘Throwable’ türlerinden bağımsız olarak yakalanabilmesidir.

23 Throw - Throws import java.io.*; public class tryCatch4{ public static void main(String args[]){ Integer dizi[]=new Integer[3]; try { for(int i=0;i<10;i++){ dizi[i]=i;} } catch (Exception ex) { catch (Exception ex) { throw new ArrayIndexOutOfBoundsException("HATA"); throw new ArrayIndexOutOfBoundsException("HATA"); }}}

24 İstisnaların listesi İstinaAçıklama RuntimeException Pek çok java.lang istisnalarının temel sınıfı ArithmeticException Aritmetik hata IllegalAccessException Sınıf erişilebilir değil IllegalArgumentException Metot geçersiz argüman yürüttü ArrayIndexOutOfBoundsE xception Dizi boyutu sıfırdan küçük veya asıl dizi boyutundan büyük NullPointerException ‘null’ nesne üyesi erişim denemesi SecurityException Güvenlik ayarları işleme izin vermiyor ClassNotFoundException İstenen sınıf yüklenemiyor

25 İstisnaların listesi İstinaAçıklama NumberFormatException Dizgiden kayan noktaya geçersiz çevirme AWTException AWT’de istisna IOException Giriş/Çıkış istisnaları için temel sınıf FileNotFoundException Dosya bulunamadı EOFException Dosya sonu NoSuchMethodException İstenilen metod mevcut değil InterruptedException İşletim dizisi durduruldu


"EDUTIME Java Day 8 Serdar TÜRKEL. İstisna Yönetimi  İstisna tanımı  İstisna yönetiminin amacının anlaşılması  Java’daki istisna türlerinin anlaşılması." indir ppt

Benzer bir sunumlar


Google Reklamları