Java'da Veri Türleri ve İstisnalar
Jim White
Java Developer
Error ciddi bir sorun ya da arızadırimport java.util.*;
public class CauseOutOfMemory {
public static void main(String[] args) {
List<Long> numbers = new ArrayList<Long>();
long counter = 0;
while (true) {
numbers.add(counter);
counter++;
}
}
}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.base/java.lang.Long.valueOf(Long.java:1204)
at foo/exceptions.CauseOutOfMemory.main(CauseOutOfMemory.java:12)
| Checked İstisna | Çalışma Zamanı ("unchecked") İstisna | |
|---|---|---|
| İşleme zorunluluğu | Evet | Hayır |
| Genel neden | Kontrolümüz dışındaki durumlar | Programlama hatalarımız |
| Kurtarma | Öngörüldüyse genelde toparlanır | Genelde toparlanamaz |
| Kurtarma yöntemi | try/catch veya throws | En iyisi dikkatli kodlayıp kaçınmak |
| Örnek istisna | Dosya bulunamadı | Dizi indeks taşması |
Exception alt sınıfı olup RuntimeException alt sınıfı olmayanlar checked istisnalardırFileNotFoundException)RuntimeException, tüm unchecked istisnaların üst sınıfıdırIndexOutOfBoundsException)ArithmeticException)| RuntimeException Alt Sınıfı | Ne zaman atılır açıklaması |
|---|---|
| ArithmeticException | 0'a bölme gibi hatalı aritmetik |
| IndexOutOfBoundsException | Dizi, String vb. için aralık dışı indeks |
| NegativeArraySizeException | Negatif boyutlu dizi oluşturmaya çalışma |
int y = 5/0; // ArithmeticException tetikleyen kod
int[] list = new int[-1]; //NegativeArraySizeException tetikleyen kod
Exception in thread "main" java.lang.ArithmeticException: / by zero
Exception in thread "main" java.lang.NegativeArraySizeException: -1
public class LoadClass {
public static void main(String[] args) {
Class myClass = Class.forName("com.mysql.Driver");
}
}
LoadClass.java:3: error: unreported exception ClassNotFoundException;
must be caught or declared to be thrown
Class myClass = Class.forName("com.mysql.Driver");
^
1 error
Java'da Veri Türleri ve İstisnalar