Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

EDUTIME Java Day 8 Serdar TÜRKEL.

Benzer bir sunumlar


... konulu sunumlar: "EDUTIME Java Day 8 Serdar TÜRKEL."— 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.

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 catch throw throws 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); 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(); } catch(LookupException e) handleLookupException(e); catch(Exception e) 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){ System.out.println ("Dosya Bulunamadi :"); }catch(Exception ex){ System.out.println ("genel hata :");

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 sonuç setinin kapanması (Veri tabanı) 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. 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){ ex.printStackTrace(); }finally { 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ı }

21 ‘throw’ ve ‘throws’ deyimleri ile kullanıcı tanımlı istisnalar
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) { throw new ArrayIndexOutOfBoundsException("HATA");

24 İstisnaların listesi Açıklama İstina 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ü ArrayIndexOutOfBoundsException 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 İstina NumberFormatException AWTException
Açı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." indir ppt

Benzer bir sunumlar


Google Reklamları