• Sonuç bulunamadı

İleri Programlama Hata Yakalama (Exception Handling)

N/A
N/A
Protected

Academic year: 2022

Share "İleri Programlama Hata Yakalama (Exception Handling)"

Copied!
39
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Hüseyin Ahmetoğlu

İleri Programlama

Hata Yakalama

(Exception Handling)

(2)

Hüseyin Ahmetoğlu

İstisna nedir?

Java'da istisna, programın normal akışını bozan bir olaydır. Çalışma zamanında atılan bir nesnedir.

İstisna İşleme,

ClassNotFoundException, IOException, SQLException,

RemoteException, vb. gibi çalışma zamanı hatalarını işlemek için kullanılan bir mekanizmadır.

İstisna işlemenin temel avantajı , uygulamanın normal akışını

sürdürmektir . Bir istisna

uygulamanın normal akışını bozar, bu yüzden istisna işleme ile pragram çalışmaya devam eder.

2 İleri Programlama

(3)

Hüseyin Ahmetoğlu

Java İstisna sınıflarının hiyerarşisi

3 İleri Programlama

(4)

Hüseyin Ahmetoğlu

4 İleri Programlama

(5)

Hüseyin Ahmetoğlu

Kontrol Edilen ve Kontrol Edilmeyen İstisnalar Arasındaki Fark

1) Kontrol Edilen İstisna RuntimeException ve Error dışında doğrudan Throwable sınıfını devralan sınıflar, kontrol edilen istisnalar olarak bilinir, örneğin IOException, SQLException vb. Kontrol edilen istisnalar derleme zamanında kontrol edilir.

2) Kontrol Edilmeyen İstisna RuntimeException'ı devralan sınıflar denetlenmeyen istisnalar olarak bilinir, örneğin ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException vb. Kontrol edilmeyen istisnalar derleme zamanında kontrol edilmez, ancak çalışma zamanında kontrol edilir.

3) Hata Hata düzeltilemez, örneğin OutOfMemoryError, VirtualMachineError, AssertionError vb.

5 İleri Programlama

(6)

Hüseyin Ahmetoğlu

Java İstisna Anahtar Kelimeleri

try

- "try" anahtar sözcüğü, istisna kodunu yerleştirmemiz gereken bir bloğu belirtmek için kullanılır. Try bloğunu ya catch ya da finally takip etmelidir. Bu, try bloğunu tek başına kullanamayacağımız anlamına gelir.

catch

- İstisnayı işlemek için "catch" bloğu kullanılır. Öncesinde try bloğu olmalıdır, bu da catch bloğunu tek başına kullanamayacağımız anlamına gelir. Daha sonra finally blok tarafından takip edilebilir.

finally

- "finally" bloğu, programın önemli kodunu yürütmek için kullanılır. Bir istisna işlenip işlenmediğine bakılmaksızın yürütülür.

throw

- Bir istisna atmak için "throw" anahtar sözcüğü kullanılır.

throws

- İstisnaları bildirmek için "throws" anahtar sözcüğü kullanılır. Bir istisna atmaz.

Metotta bir istisna oluşabileceğini belirtir. Her zaman metot imzası ile kullanılır.

6 İleri Programlama

(7)

Hüseyin Ahmetoğlu

Java İstisna İşleme Örneği

7 İleri Programlama

(8)

Hüseyin Ahmetoğlu

Java İstisnalarının Genel Senaryoları

▸ 1) ArithmeticException

▸ 2) NullPointerException

▸ 3) NumberFormatException

▸ 4) ArrayIndexOutOfBoundsException

8 İleri Programlama

(9)

Hüseyin Ahmetoğlu

try-catch

▸ Java try bloğu, bir istisna oluşturabilecek kodu içine almak için kullanılır.

▸ Try bloğunun belirli ifadesinde bir istisna oluşursa, blok kodunun geri kalanı yürütülmez. Bu nedenle, bir istisna atmayacak olan kodları try bloğunda tutmamanız önerilir.

▸ Java try bloğunu ya catch ya da finally bloğu takip etmelidir.

9 İleri Programlama

(10)

Hüseyin Ahmetoğlu

Java catch block

▸ Java catch bloğu, parametre içindeki istisna türünü bildirerek İstisnayı işlemek için kullanılır.

▸ Bildirilen istisna, ana sınıf istisnası veya oluşturulan istisna türü olmalıdır.

10 İleri Programlama

(11)

Hüseyin Ahmetoğlu

Örnek 1

11 İleri Programlama

(12)

Hüseyin Ahmetoğlu

Örnek 2

12 İleri Programlama

(13)

Hüseyin Ahmetoğlu

Örnek 3

13 İleri Programlama

(14)

Hüseyin Ahmetoğlu

Örnek 4

14 İleri Programlama

(15)

Hüseyin Ahmetoğlu

Örnek 5

15 İleri Programlama

(16)

Hüseyin Ahmetoğlu

Örnek 6

16 İleri Programlama

(17)

Hüseyin Ahmetoğlu

Örnek 7

17 İleri Programlama

(18)

Hüseyin Ahmetoğlu

Örnek 8

18 İleri Programlama

(19)

Hüseyin Ahmetoğlu

Java Multi-catch block

▸ Bir try bloğunu bir veya daha fazla yakalama bloğu takip edebilir. Her bir yakalama bloğu farklı bir özel durum işleyicisi içermelidir. Bu nedenle, farklı istisnaların

ortaya çıkması durumunda farklı görevler gerçekleştirmeniz gerekiyorsa, Java çoklu yakalama bloğunu kullanın.

▸ Bir seferde yalnızca bir istisna oluşur ve aynı anda yalnızca bir catch bloğu yürütülür.

▸ Tüm yakalama blokları en özelden en genele doğru sıralanmalıdır, yani

ArithmeticException için yakalama, Exception için yakalamadan önce gelmelidir.

19 İleri Programlama

(20)

Hüseyin Ahmetoğlu

20 İleri Programlama

(21)

Hüseyin Ahmetoğlu

21 İleri Programlama

(22)

Hüseyin Ahmetoğlu

22 İleri Programlama

(23)

Hüseyin Ahmetoğlu

23 İleri Programlama

(24)

Hüseyin Ahmetoğlu

24 İleri Programlama

(25)

Hüseyin Ahmetoğlu

İç içe try block

▸ Bazen bir bloğun bir bölümünün bir hataya neden olabileceği ve bloğun tamamının başka bir hataya neden olabileceği bir durum ortaya çıkabilir. Bu gibi durumlarda, istisna işleyicileri iç içe olmalıdır.

25 İleri Programlama

(26)

Hüseyin Ahmetoğlu

26 İleri Programlama

(27)

Hüseyin Ahmetoğlu

Java finally block

▸ Java finally bloğu, bağlantıyı kapatma, akış vb. Gibi önemli kodları yürütmek için kullanılan bir bloktur.

▸ Java finally bloğu, istisna işlenip işlenmediğine bakılmaksızın her zaman yürütülür.

▸ Kural: Her bir try bloğu için sıfır veya daha fazla catch bloğu olabilir, ancak yalnızca bir tane finally bloğu olabilir.

27 İleri Programlama

(28)

Hüseyin Ahmetoğlu

Örnek

28 İleri Programlama

(29)

Hüseyin Ahmetoğlu

Örnek

29 İleri Programlama

(30)

Hüseyin Ahmetoğlu

Örnek

30 İleri Programlama

(31)

Hüseyin Ahmetoğlu

Java throw exception

▸ Java throw anahtar sözcüğü, açıkça bir istisna atmak için kullanılır.

▸ Java'da throw anahtar sözcüğü ile kontrol edilen veya kontrol

edilmeyen istisna atabiliriz.

▸ throw anahtar sözcüğü esas olarak özel istisna atmak için metotolarla birlikte kullanılır.

31 İleri Programlama

(32)

Hüseyin Ahmetoğlu

Java Exception propagation

▸ İlk önce yığının

tepesinden bir istisna atılır ve yakalanmazsa, çağrı yığınını önceki yönteme bırakır.

▸ Kural: Varsayılan olarak Denetlenmeyen

İstisnalar, çağrı

zincirinde iletilir (yayılır).

32 İleri Programlama

(33)

Hüseyin Ahmetoğlu

Java Exception propagation

▸ Kural: Varsayılan olarak, Kontrol Edilen İstisnalar çağrı zincirinde iletilmez.

33 İleri Programlama

(34)

Hüseyin Ahmetoğlu

Java throws

▸ Java throws anahtar sözcüğü bir istisna bildirmek için kullanılır. Programcıya bir istisna olabileceğine dair bir bilgi verir, bu nedenle programcının istisna işleme kodunu sağlaması normal akışın sürdürülebilmesi için daha iyidir.

▸ İstisna İşleme, çoğunlukla kontrol edilen istisnaları işlemek için kullanılır.

NullPointerException gibi kontrol edilemeyen bir istisna oluşursa, bu kod kullanılmadan önce kontrolün gerçekleşmediği anlamına gelir bu bir yazılımcı hatasıdır.

▸ Kural: Bir istisna bildiren bir yöntemi çağırıyorsanız, istisnayı yakalamanız veya bildirmeniz gerekir.

34 İleri Programlama

(35)

Hüseyin Ahmetoğlu

35 İleri Programlama

(36)

Hüseyin Ahmetoğlu

Durum 1: İstisnayı işleme

36 İleri Programlama

İstisnayı ele almanız durumunda, program sırasında istisna olup olmadığına bakılmaksızın kod iyi yürütülecektir.

(37)

Hüseyin Ahmetoğlu

Durum 2: İstisnayı Bildirme

37 İleri Programlama

A) İstisnayı ilan etmeniz durumunda, istisna oluşmazsa, kod iyi yürütülür.

(38)

Hüseyin Ahmetoğlu

Durum 2: İstisnayı Bildirme

38 İleri Programlama

B) İstisna meydana gelirse istisna beyan etmeniz durumunda, fırlatmalar istisnayı işlemediğinden çalışma zamanında bir istisna atılır.

(39)

KAYNAKLAR

Hüseyin Ahmetoğlu

▸Programming Notes. (2021, March 11). Retrieved from

https://www3.ntu.edu.sg/home/ehchua/programming/index.html

▸Tutorials - Javatpoint. (2021, June 06). Retrieved from https://www.javatpoint.com

▸Çobanoğlu B. (2020) Java ile Programlama ve Veri Yapıları. İstanbul Pusula Yayıncılık. 978-605- 2359-84-6

39 İleri Programlama

Referanslar

Benzer Belgeler

Kadınların sektörde sayısının fazla olduğu ancak üst yönetimde sayılarının az olduğu bankacılık sektöründe yapılan bir araştırmada da kadınlar ve erkeklere

GENÇLĠK VE SPOR BAKANLIĞINA HAZĠNE VE MALĠYE BAKANLIĞINA KÜLTÜR VE TURĠZM BAKANLIĞINA MĠLLĠ EĞĠTĠM BAKANLIĞINA. MĠLLĠ SAVUNMA BAKANLIĞINA

Carl Schmitt: Siyaset anlayışının temel özellikleri..  Siyaset ve devlet

 Yayımlanmış musiki, ilim ve edebiyat eserlerinden ve alenileşmiş güzel sanat eserlerinden, iktibaslar yapılmak suretiyle eğitim ve öğretim gayesi dışında seçme ve

Nörolojik muayenesinde defisit saptanmayan hastanın çekilen direkt grafi ve lomber CT’sinde bıçak ucunun L1 vertebra korpusu ve L1-2 disk aralığına saplanmış olduğu

isimli sözleşme ile ilgili olarak yapılacak mal alımları, hizmet ifaları ve yaptırılacak işlerde Katma Değer Vergisi istisnasından yararlanmak üzere, 5824 sayılı

isimli sözleşme ile ilgili olarak yapılacak mal alımları, hizmet ifaları ve yaptırılacak işlerde Katma Değer Vergisi istisnasından yararlanmak üzere, 5824

Uluslararası ilişkilerde geleneksel olarak ulusal ve uluslararası güvenlik ile ilgili konular ticari ilişkilere nazaran önceliklidir 53. Bu çerçevede, GAtt Madde XXI 54 ve GAtS