java exceptions exception handling with examples
Java İstisnaları ile ilgili bu Video Eğitimi, Java'da İstisna İşleme hakkında her şeyi açıklar. İstisna Hiyerarşisi, Türler, Sınıf Yöntemleri ve daha fazlasını öğreneceksiniz:
Java programlarını çalıştırdığımızda, bazı beklenmedik olaylar nedeniyle programın normal davranışı veya normal akışı kesintiye uğrar.
Örneğin, verileri okumak için bir dosya açıyoruz. Dosya aç çağrısı yürütüldüğünde, açmaya çalıştığımız dosyanın eksik olduğunu görüyoruz. Bu, programın normal akışının kesintiye uğramasına neden olur.
Programın normal akışını etkileyen veya kesintiye uğratan bu olaya ' İstisna ”.
=> Java Eğitim Serisini Herkes İçin Keşfetmek İçin Burayı Ziyaret Edin.
Java İstisnalarını Yönetme hakkında bir Video eğitimi:
Ne öğreneceksin:
Java'da Özel Durum İşleme
Programda bir istisna meydana geldiğinde, programın yürütülmesi sona erer. Bu ani bir sonlandırma olduğu için, sistem bir mesaj oluşturur ve bunu görüntüler. Sistemin ürettiği mesaj bazı kodlar gibi şifreli veya okunamaz olabilir.
Bu nedenle normal kullanıcı, programın çalışmasını neden aniden durdurduğunu anlamalı, sebebini bilmelidir. Sistemin bir istisna sonucu oluşturduğu mesajlar yardımcı olmayabilir. Java'da istisnayı halledebilir ve kullanıcıya sorunla ilgili anlamlı mesajlar verebiliriz.
Bu istisna işleme, genellikle 'İstisna işleme' Java programlamanın göze çarpan özelliklerinden biridir.
İstisnanın Oluşma Nedenleri
Hangi istisnaların ortaya çıkabileceğine bağlı olarak çeşitli nedenlerimiz olabilir. Girişle ilgili bir istisna ise, bunun nedeni giriş verilerinin yanlış veya okunamaz olması olabilir.
Dosya G / Ç için bir istisna alırsak, ilgilendiğimiz dosyaların mevcut olmaması oldukça olasıdır. Başka bir zamanda, ağ sorunları, yazıcının kullanılmaması veya çalışmaması vb. Hatalar olabilir.
Bir programda istisnaların dışında hatalar da alırız. Bu nedenle, istisnaları etkin bir şekilde ele almak için, hata ile istisna arasındaki farkların farkında olmamız gerekir.
Bir hata, uygulamayla ilgili daha ciddi bir sorunu belirtir ve uygulama onu yakalamaya çalışmamalıdır. Aksine, istisna, herhangi bir makul uygulamanın yakalamaya çalışacağı bir koşuldur.
Bu nedenle uygulamadaki bir hata daha ciddidir ve uygulamalar bir hata ile karşılaştığında çökebilir. Öte yandan, istisnalar kodda meydana gelir ve programcı tarafından düzeltici eylemler sağlanarak ele alınabilir.
İstisna İşlemi Nedir?
Java'da İstisna İşleme, uygulamanın normal akışının sürdürüldüğü bir mekanizmadır. Bunu yapmak için, bir programdaki çalışma zamanı hatalarını veya istisnaları işlemek için güçlü bir mekanizma kullanıyoruz.
İstisnayı işlemek için kullanılan kod dizisine 'İstisna işleyicisi' adı verilir. İstisna işleyici, istisnanın meydana geldiği noktada bağlamı sorgular. Bu, istisna oluştuğu sırada kapsamdaki değişken değerlerini okuduğu ve ardından normal akışla devam etmek için Java programını geri yüklediği anlamına gelir.
İstisna İşlemenin Faydaları
İstisna işlemenin en büyük yararı, bir istisna meydana gelmesine rağmen uygulamanın normal akışını sürdürmesidir. Bir istisna meydana geldiğinde, program genellikle aniden sona erer.
Bir programda bir istisna işleyiciye sahip olmak, programın aniden sona ermesine neden olmaz. Bunun yerine, bir istisna işleyici, programdaki tüm ifadelerin normal şekilde yürütüldüğünden ve program akışının aniden kesilmemesini sağlar.
Java'da İstisna Hiyerarşisi
Aşağıdaki diyagram Java'daki İstisna hiyerarşisini göstermektedir. Java.lang.Throwable (Object sınıfının soyundan gelen) sınıfı, Java Exception'ın kök sınıfıdır. Exception ve Error sınıfları bu sınıftan türetilmiştir.
İstisna sınıfı, diğer tüm istisnalar için temel sınıftır.
Aşağıda, bir Java programcısının farkında olması gereken tüm önemli istisnaları listeleyen Java'da bir İstisna sınıfı hiyerarşisi verilmiştir.
Java'da İstisna Sınıfı
Hiyerarşi diyagramında görüldüğü gibi, Throwable sınıfının iki doğrudan alt sınıfı vardır, yani İstisna ve Hata. Harici bir kaynaktan kaynaklanan istisnalar, Exception sınıfında açıklanır.
Exception sınıfı, yapıcıları Throwable sınıfıyla aynı şekilde bildirir ve her kurucunun çağrılması da Throwable karşılığını çağırır. Exception sınıfı, yöntemlerini bildirmez, Throwable sınıf yöntemlerini miras alır.
Exception sınıfının kullandığı Oluşturucular ve Yöntemler aşağıda sunulmuştur.
İnşaatçılar
Oluşturucu Açıklama genel İstisna () İleti null olarak yeni bir istisna oluşturan varsayılan bir kurucu. genel İstisna (Dize mesajı) Oluşturucu, verilen mesajla yeni bir istisna oluşturacak. Bu durumda, neden başlatılmaz ve nedeni başlatmak için Throwable.initCause (java.lang.Throwable) için sonraki bir çağrı kullanılabilir. genel İstisna (Dize mesajı, Atılabilir neden) Belirli bir mesajı ve nedeni kullanarak yeni bir istisna oluşturur. genel İstisna (Atılabilir neden) Belirtilen nedene ve (neden == null? Null: neden.toString ()) (genellikle neden sınıfını ve ayrıntı mesajını içeren) tarafından verilen bir ileti ile yeni bir istisna oluşturur. korumalı İstisna (Dize mesajı, Atılabilir neden, boole etkinleştirmeSuppression, boolean yazılabilirStackTrace) Verilen ileti, neden, bastırma (etkin veya devre dışı) ve yazılabilir yığın izleme (etkin veya devre dışı) ile yeni bir kural dışı durum oluşturur.
Yöntemler
Yöntem Prototipi | Açıklama |
---|---|
public String getMessage () | Oluşan istisna hakkında ayrıntılı bir mesaj alın. |
public Throwable getCause () | Fırlatılabilir bir nesne tarafından temsil edilen istisnanın nedenini öğrenin |
public String toString () | Sınıfın adını getMessage () sonucuyla birleştirir ve sonuç dizesini döndürür. |
public void printStackTrace () | ToString () sonucunu ve yığın izlemenin içeriğini hata çıktı akışına (System.err) yazdırır. |
genel StackTraceElement () getStackTrace () | Yığın izlemedeki her bir öğeyi bir dizi biçiminde alın. |
public Throwable fillInStackTrace () | Yığın izlemesini geçerli yığın izlemesiyle doldurun. |
İstisna Örneği
Sonra, temel bir istisna örneğini göstermek için bir Java programı sunuyoruz. Burada, boş bir değere başlatılmış bir dize değişkeni sağlıyoruz. Bu değişkeni yazdırmaya çalıştığımızda, String değeri boş olamayacağından bir istisna atılır.
class Main { public static void main(String args()){ //declare a String variable and initialize it to null String myStr = null; //print the string System.out.println(myStr.length()); } }
Çıktı
Java'da İstisna Türleri
Java, üç tür istisnayı destekler:
- Kontrol Edilen İstisna
- Kontrol Edilmemiş İstisna
- Hata
Bu bölümde, yukarıdaki üç türü tartışacağız.
# 1) Kontrol Edilen İstisna
Bazı istisnalar, kod derlendiğinde derleme zamanında kontrol edilir. Bunlar 'Kontrol edilen istisnalardır'. Java programı, bir programın içindeki kodun hataya açık olduğunu tespit ettiğinde bir derleme hatası atar.
Kodu bir try-catch bloğu içine alarak veya throws anahtar sözcüğünü kullanarak istisnaları ele alarak, kontrol edilen istisna tarafından atılan derleme hatalarını halledebiliriz.
İstisna hiyerarşisinde, IOException, ClassNotFoundException, vb. Gibi Throwable sınıflarını doğrudan miras alan sınıf, RuntimeException ve Error sınıfları dışında tüm denetimli istisnadır. Bunlar kontrol edilmeyen istisnalardır.
Aşağıdaki Java programı, Kontrol Edilmiş İstisnaları, FileNotFoundException ve IOException'ı gösterir. Bu programda var olmayan bir dosyayı açıp ondan okumaya çalışıyoruz.
Dosya mevcut olmadığından, açık dosya yöntemi FileNotFoundException oluşturur. Daha sonra dosyanın içeriğini okumaya ve dosyayı kapatmaya çalıştığımızda, yöntemler IOException çağırır.
import java.io.*; class Main { public static void main(String args()) { FileInputStream fis = null; //Open a file fis = new FileInputStream('C:/myfile.txt'); int k; //read contents of the file while(( k = fis.read() ) != -1) { System.out.print((char)k); } //close the file fis.close(); } }
Çıktı
Yukarıdaki çıktıda, istisna işleyicisi olmadığı için, kontrol edilen istisnalar için derleme hataları alıyoruz.
Şimdi bu program için bir atış cümlesi sağlayalım. FileNotFoundException'ın ebeveyni IOException olduğu için, throws cümlesinden sonra IOException'ı belirteceğiz.
import java.io.*; class Main { public static void main(String args()) throws IOException { FileInputStream fis = null; //Open a file fis = new FileInputStream('C:/myfile.txt'); int k; //read contents of the file while(( k = fis.read() ) != -1) { System.out.print((char)k); } //close the file fis.close(); } }
Çıktı
dizeye c ++ karakteri
Çıktıdan da anlaşılacağı gibi, istisnayı ele aldığımızda derleme hataları yerine daha anlamlı çıktılar sağlar.
# 2) Kontrol Edilmemiş İstisna
Kontrol edilmeyen istisnalar, çalışma zamanında kontrol edilen istisnalardır. Bu nedenle istisnalara rağmen, programların derlenmesi başarılı olacaktır. Kontrol edilmeyen istisnaların çoğu, programda kullanılan kötü veriler nedeniyle atılır.
'RuntimeException' öğesini devralan sınıflar, denetlenmemiş istisnalardır. ArrayIndexOutofBounds Exception, ArithmeticException, NullPOinterException vb. Gibi istisnalar, denetlenmemiş istisnalara örnektir.
Aşağıdaki program, bir sayının sıfıra bölünmesinin neden olduğu bir çalışma zamanı denetlenmemiş istisnasını gösterir.
class Main { public static void main(String args()) { int num1=10; int num2=0; //divide both numbers and print the result int result=num1/num2; System.out.println(result); } }
Çıktı
varsayılan ağ geçidi mevcut değil
Programın başarıyla derlendiğini ve ardından çalışma zamanında ArithmeticException atıldığını görüyoruz.
Kontrol Edilmemiş İstisna Örnekleri:
- ArrayIndexOutOfBoundsException
- NullPointerException
- IllegalArgumentException
- NumberFormatException
Yukarıdaki iki istisna dışında, aşağıdakiler de dahil olmak üzere birkaç Kontrol edilmiş istisna vardır:
- SQLException
- InvocationTargetExecption
# 3) Hata
Hata, bir programda genellikle geri döndürülemez ve düzeltilemez bir durumdur ve bir hata oluştuğunda programlar çöker. Bir programdaki hata örneklerinden bazıları OutOfMemoryError, AssertionError ve VirtualMachineError vb .'dir.
Hata sınıfı Throwable sınıfından miras alınır. Hata, ele alınamayan ve programın çökmesine neden olan bir durumu tanımlar.
Bu bölümde OutOfMemory hatasını bir hata örneği olarak tartışalım.
Java'daki tüm nesnelerin yeni operatör kullanılarak tahsis edildiğini ve yığın üzerinde depolandığını biliyoruz. Yığın bellek yetersiz kaldığında, Java Sanal Makinesi (JVM) nesneyi ayıramaz. Aynı zamanda, çöp toplayıcı herhangi bir belleği boşaltamaz. Bu durum OutOfMemory hatasına neden olur.
Java'daki OutOfMemoryError aşağıda gösterildiği gibi görünecektir:
'exception in thread 'main' java.lang.outofmemoryerror: java heap space'
Bir programda OutOfMemoryError varlığı, ya çok fazla verinin işlendiği ya da nesnelerin çok uzun süre tutulduğu anlamına gelir. Bazen hafızayı kullanan bir üçüncü taraf kitaplığı da olabilir.
OutOfMemoryError'ın Nedenleri
# 1) Java Yığın Alanı
Bir uygulamanın çok fazla sonlandırıcısı varsa, Finalize yöntemine sahip sınıf nesneleri çöp toplayıcı tarafından hemen geri alınmaz, ancak daha sonra sonlandırılmak üzere sıraya alınır. Bazen, sonlandırma zamana ayak uyduramaz ve yığın belleği dolar, OutOfMemoryError ile sonuçlanır.
OutOfMemoryError'ın bir başka nedeni de belirtilen yığın boyutunun uygulama için yetersiz olabilmesidir.
Aşağıdaki kod, bir dizi için bildirilen çok büyük bir veri boyutu nedeniyle oluşabilen OutOfMemoryError hatasını gösterir.
import java.util.*; public class Main { static List list = new ArrayList(); public static void main(String args()) throws Exception { Integer() array = new Integer(100000 * 100000); } }
Çıktı
# 2) Permgen Uzay
Bellekteki Kalıcı Üretim Alanı da tükenebilir ve OutOfMemory hatası oluşturabilir.
PermGen bölgesinin boyutu JVM başlatılırken belirlenir. Kullanıcı boyutu ayarlamazsa, platforma özgü varsayılan boyut kullanılır.
Yukarıdaki ikisi genellikle OutOfMemoryError oluşumunun ana nedenleri olsa da, Dizi boyutunun VM sınırını aşması gibi başka nedenler de olabilir.
Java'da İstisnaların Listesi
Aşağıda, Java'da meydana gelen başlıca istisnaların bir listesi verilmiştir. Bu istisnalardan bazıları için programlama örnekleri sağladık. Bunların Java tarafından desteklenen yerleşik istisnalar olduğunu unutmayın.
# 1) Aritmetik İstisna: Sıfıra bölme gibi aritmetik anormallikler, ArithmeticException'da sonuçlanır.
Aşağıdaki program, ArithmeticException'ın oluşumunu göstermektedir.
class Main { public static void main(String args()) { try { //define two numbers int num1 = 100, num2 = 0; int result = num1 / num2; // divide by zero //print the result System.out.println('Result = ' + result); } catch (ArithmeticException e) { System.out.println('ArithmeticException:Division by Zero'); } } }
Çıktı
# 2) ArrayIndexOutOfBoundsException: Bir dizi öğesine geçersiz bir dizin kullanılarak erişildiğinde ArrayIndexOutOfBoundsException atılır. Kullanılan dizin, dizinin boyutunun ötesinde veya negatif.
# 3) ClassNotFoundException: Sınıf tanımı bulunamazsa, ClassNotFoundException oluşturulur.
# 4) FileNotFoundException: FileNotFoundException, dosya mevcut olmadığında veya açılmadığında verilir.
# 5) IOException: Giriş-çıkış işlemi başarısız olduğunda veya kesintiye uğradığında IOException atılır.
# 6) Kesilen İstisna: Bir iş parçacığı işleme veya uyku ya da bekleme yaparken, InterruptedException atılarak kesilir.
# 7) NoSuchFieldException: Bir sınıf belirli bir alan veya değişken içermiyorsa, NoSuchFieldException oluşturur.
# 8) NoSuchMethodException: Erişilmekte olan yöntem bulunamadığında, NoSuchMethodException oluşturulur.
# 9) NullPointerException: NullPointerException, boş bir nesne başvurulduğunda ortaya çıkar. Bu, Java'daki en önemli ve en yaygın istisnadır.
# 10) NumberFormatException: Bu özel durum, bir yöntem bir dizeyi sayısal biçime dönüştüremediğinde ortaya çıkar.
# 11) RuntimeException: Çalışma zamanında meydana gelen herhangi bir istisna, bir RuntimeExceptiondır.
# 12) StringIndexOutOfBoundsException: StringIndexOutOfBoundsException, String sınıfı tarafından oluşturulur ve dizinin, String nesnesinin boyutunun ötesinde veya negatif olduğunu gösterir.
# 13) EOF İstisnası: EOFException, java.io paketinin bir parçasıdır ve dosyanın sonuna ulaşıldığında ve dosya okunurken atılır.
# 14) IllegalArgumentException: Yönteme geçersiz veya geçersiz bağımsız değişkenler iletildiğinde IllegalArgumentException atılır. Örneğin, yanlış veri biçimi, boş olmayan gerekli olduğunda veya aralık dışı bağımsız değişkenler olduğunda boş değer.
Aşağıdaki Java programı IllegalArgumentException'ı göstermektedir.
public class Main { int m; public static void setMarks(int marks) public static void main(String() args) { setMarks(45); setMarks(101); } }
Çıktı
Yukarıdaki programda IllegalArgumentException ikinci setMarks işlevi çağrısında atılır ve burada aralık dışı (> 45) işaretleri girdiğimiz yer.
# 15) InputMismatchException: Giriş okuması belirtilen bir desenle eşleşmediğinde InputMismatchException atılır. Örneğin, program tamsayı bekliyorsa ve bir kayan nokta okursa, InputMismatchException yükseltilir.
# 16) NoSuchElementException: NoSuchElementException, erişilen sonraki öğe mevcut olmadığında atılır.
Örneğin, Numaralandırmada, nextElement () yöntemi numaralandırmadaki sonraki öğeye erişmek için kullanılır. Öğe yoksa, NoSuchElementException atılır. Çoğunlukla Java Koleksiyonları bu istisnayı atar.
Aşağıda verilen program bunu göstermektedir.
import java.util.*; public class Main { public static void main(String() args) { Set hash_Set = new HashSet(); //create an empty hashSet. //This throws NoSuchElementException since hashSet is empty hash_Set.iterator().next(); } }
Çıktı
# 17) ConcurrentModificationException: ConcurrentModificationException genellikle Collection sınıfları tarafından oluşturulur. Bu istisna, nesneler bir kaynağı eşzamanlı olarak değiştirmeye çalıştığında atılır.
Örneğin, bir iş parçacığı, başka bir iş parçacığına erişirken bir koleksiyonu değiştiremez. İki iş parçacığına izin verirsek, bu ikisi aynı anda koleksiyona erişecek ve tutarsızlıklar olacaktır.
Aşağıdaki örnek ConcurrentModificationException gösterir.
import java.awt.List; import java.util.*; public class Main { public static void main(String() args) { ArrayList A_list = new ArrayList<>(); //add elements to the ArrayList A_list.add(10); A_list.add(20); A_list.add(30); Iterator it = A_list.iterator(); while (it.hasNext()) { Integer value = it.next(); System.out.println('ArrayList Value:' + value); if (value.equals(30)) A_list.remove(value); } } }
Çıktı
Yukarıdaki programda ArrayList yazdırılırken aynı anda bir elemanı silmeye çalışıyoruz. Bu eşzamanlı erişimdir ve bu nedenle bir istisna atılır.
Java'da Özel İstisnalar
Şimdiye kadar yerleşik veya Java dili tarafından sağlanan tüm istisnaları tartıştık. Bu istisnalar dışında kendi istisnalarımızı da tanımlayabiliriz. Bunlara Özel istisnalar veya kullanıcı tanımlı istisnalar denir.
Özel istisnaları kullanarak, istisnalarımızı ihtiyaçlarımıza göre tanımlayabiliriz.
Aşağıdaki örnek, bir Tamsayı değeri için tanımladığımız özel istisnayı gösterir.
//custom exception definition class InvalidValueException extends Exception{ InvalidValueException(String s){ super(s); } } class Main{ static void validate(int int_val)throws InvalidValueException{ if(int_val<10) //value is valid if> 10 else throw exception throw new InvalidValueException('Invalid value'); else System.out.println('This is valid integer'); } public static void main(String args()){ try{ validate(9); }catch(Exception m){System.out.println('Exception occured: '+m);} System.out.println('Code after Exception'); } }
Çıktı
Sıkça Sorulan Sorular
S # 1) İstisna derken neyi kastediyorsunuz?
Cevap: Bir programın yürütülmesi sırasında meydana gelen ve programın normal yürütme akışını bozan bir olaya İstisna denir. İstisna, istenmeyen ve beklenmediktir ve harici faktörler veya programlama hataları nedeniyle ortaya çıkabilir.
S # 2) Hata ve İstisna arasındaki fark nedir?
Cevap: İstisnalar, programın normal akışını bozan olaylardır. Programımızdaki istisnaları ele alabilir ve programa normal şekilde devam edebiliriz. Bir hata, düzeltilemeyen, işlenemeyen ve programı sonlandıran bir olaydır.
S # 3) İstisna İşlemi ile neyi kastediyorsunuz?
Cevap: İstisnayı işlemek için bir programdaki adımların sırasını belirleme işlemine İstisna İşleme denir. Bir programda istisna işleyicileri sağlayarak, programın normal akışını sağlayabiliriz.
S # 4) Java'da İstisna İşlemenin avantajları nelerdir?
Cevap: İstisna işlemeyi kullanarak bir uygulamanın normal yürütme akışını koruyabiliriz. İstisna işleyicileri sağladığımızda, hataları çağrı yığınına da yayabiliriz.
S # 5) İstisna İşleme'nin kullanımı nedir?
Cevap: Bir uygulamanın normal yürütme akışını sona erdirmemek, bir programda istisna işleyicilere sahip olmanın başlıca kullanımıdır. İstisna işleyicileri olmadan, bir istisna oluştuğunda program sona erecek ve normal yürütme akışı kesilecektir.
Programda düzgün bir şekilde işlenen istisna dışında, bir istisna meydana geldiğinde bile normal çalışmasına devam edebilir.
İstisnalarla İlgili Daha Fazla Örnek
İstisna, program çalışırken meydana gelen ve programın yürütülmesini kesintiye uğratan bir olaydır. Bundan dolayı yazılım ürünü aniden sona erecek.
Bu istisna oluştuğunda, Java bir hata mesajı ve sınıf hakkında bilgi içeren bir nesne oluşturur. Bu istisna nesnesidir.
Java'da Neden Bir İstisnaya İhtiyacımız Var?
İstisnasız Sınıf ExcepDemo:
public class ExcepDemo { public static void main(String() args) { int i=5; int j=0; System.out.println(i/j); System.out.println('statement after division'); } }
ÇIKTI:
İstisna İşleme ile Sınıf ExcepDemo:
public class ExcepDemo { public static void main(String() args) { // TODO Auto-generated method stub int i=5; int j=0; try { System.out.println(i/j); } catch(ArithmeticException ae) { System.out.println('wrong input'); } System.out.println('statement after division'); } }
ÇIKTI:
Deneyin, yakalayın ve son olarak engelleyin:
- Try, catch bloğu ile bir istisna ele alınır.
- İstisnalara yol açabilecek ifadeler try bloğunun içine yazılır.
- Bir istisna meydana geldiğinde, catch bloğunun içindeki ifadeler çalıştırılacaktır. Bir istisna oluşmazsa, catch bloğu çalıştırılmayacaktır.
- Oluşan veya oluşmayan istisnaya bakılmaksızın, son blok yürütülür.
İstisna Türleri
Kontrol Edilmemiş İstisna:
Kontrol edilmeyen istisnalar uygun programlama ile önlenebilir ( Örneğin. null pointer Exception, Arithmetic Exception) derleyici tarafından kontrol edilmeyecek. Kontrolsüz İstisna, çalışma zamanında atılacaktır.
.jar dosyaları nasıl açılır pencereler 10
Kontrol Edilen İstisna:
- Denetlenen İstisna, derleyici tarafından kontrol edilecek ve istisnayı atmak veya işlemek için zorunludur.
- Bu İstisna, hata işleme kodunu normal koddan ayırmak için kullanılır.
- Kontrol edilen tüm istisnalar gruplandırılmıştır ve problemleri ayırt etmede faydalıdır.
Misal: java.io
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class DemoExpChecked { public static void main(String() args) { try { File file=new File('input.txt'); BufferedReader br = new BufferedReader(new FileReader(file)) ; String content; while ((content=br.readLine())!=null) { System.out.println(content); } br.close(); } catch(IOException e) { e.printStackTrace(); } } }
Hatalar
Program mantıksal hataları veya JVM sorunuyla ilgili herhangi bir bellek nedeniyle bir hata oluşabilir.
Misal: Bellek sınır dışı hatası veya yığın taşma hatası.
Fırlat ve Atar
'Throw' anahtar sözcüğü istisnayı atmak için kullanılırken, 'throws' anahtar sözcüğü istisnayı bildirmek için kullanılır.
Örnek Programı Atın:
public class Demothrow { String content ; public void driving(String c) { this.content=c; if (content.isEmpty()) { throw new NullPointerException('content is empty'); } else { System.out.println('content=='+content); } } public static void main(String() args) { Demothrow dt=new Demothrow(); dt.driving(''); } }
Örnek Programı Atar:
Fırlatmalar, bu yöntemin bu özel istisnayı attığı bilgisini vermek için kullanılır. Bu belirli yöntemi çağırdığınızda, bu istisnayı halletmeniz gerekir.
public class DemoThrows { int i=2,j=0; public void checkmethod () throws ArithmeticException{ System.out.println(i/j); } public static void main(String() args) { DemoThrows d =new DemoThrows(); try { d.checkmethod(); } catch (ArithmeticException ae) { ae.printStackTrace(); } } }
Dikkat edilmesi gereken kilit noktalar:
- İstisnalar, programın yürütülmesi sırasında meydana gelen anormal olaylardır ve yürütme akışını etkiler.
- Bir hata istisnalardan farklıdır. Hata Örneği: Bellek hatalı.
- Kontrol edilen istisnalar derleme sırasında kontrol edilir ve bu kontrol edilen istisnayı ele almak zorunludur.
- Çalışma zamanı sırasında kontrol edilmeyen bir istisna oluşur.
Sonuç
Java'da özel durum işleme hakkındaki bu eğitici, Java'da istisnaların tanımını, istisna işlemeyi ve istisna hiyerarşisini tanıttı. Ayrıca, istisnalara erişmek için çeşitli yapıcılar ve yöntemler sağlayan Java'daki istisna sınıfını da tartıştık.
Java'da meydana gelen yaygın istisnaların bir listesini inceledik ve ana istisna için programlama örneklerini gördük. Ayrıca, istisna türleri ve özel istisnalar ile birlikte bir Java programında meydana gelen başlıca hataları tartıştık.
=> TÜM Java Öğreticilerini Buradan Kontrol Edin.
Önerilen Kaynaklar
- İlk 10 Selenyum İstisnası ve Bunlarla Nasıl Başa Çıkılır (Tam Kod)
- JDBC Özel Durum İşleme - SQL İstisnalarını İşleme
- SoapUI Harika Komut Dosyalarında İstisna Nasıl Başa Çıkılır - SoapUI Eğitimi # 11
- String Buffer ve String Builder Eğitimi ile Java String
- Java Dağıtımı: Java JAR Dosyasının Oluşturulması ve Yürütülmesi
- Yöntemler ve Yaşam Döngüsü İçeren Java Konuları
- Java Sanal Makinesi: JVM, Java Uygulamasını Çalıştırmada Nasıl Yardımcı Olur?
- Java'da Erişim Değiştiriciler - Örneklerle Eğitim