Error dan Exception

Tipe Data dan Exception di Java

Jim White

Java Developer

Exception vs Error

  • Error adalah masalah serius
  • Aplikasi tidak dapat menangani atau memulihkan dari error
    • Error membuat aplikasi “crash” atau berhenti
    • Contoh: kehabisan memori adalah error di Java
  • Aplikasi dapat menangani dan memulihkan dari exception
    • Mencoba mengakses elemen di luar ukuran array adalah exception.
Tipe Data dan Exception di Java
Contoh Error
import 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)
Tipe Data dan Exception di Java

Dua jenis exception

Checked Exception Runtime ("unchecked") Exception
Perlu penanganan Ya Tidak
Penyebab umum Di luar kendali kita Kesalahan pemrograman
Pemulihan Biasanya bisa dipulihkan jika diantisipasi Biasanya tidak bisa dipulihkan
Mekanisme try/catch atau throws Sebaiknya dicegah dengan kode yang baik
Contoh File tidak ditemukan Indeks array di luar batas
Tipe Data dan Exception di Java

Checked dan Runtime exception

  • Subkelas Exception yang bukan subkelas RuntimeException adalah checked exception
    • Harus ditangani
    • Contoh: file tidak ditemukan (FileNotFoundException)
  • RuntimeException adalah superclass untuk semua unchecked exception
    • Tidak wajib ditangani
    • Contoh: mengakses indeks array yang tidak ada (IndexOutOfBoundsException)
    • Contoh: membagi dengan nol (ArithmeticException)
Tipe Data dan Exception di Java

RuntimeException

Subkelas RuntimeException Kapan dilempar
ArithmeticException Perhitungan tidak valid, mis. membagi 0
IndexOutOfBoundsException Indeks pada array, String, dll. di luar rentang
NegativeArraySizeException Membuat array dengan ukuran negatif
int y = 5/0; // Kode penyebab ArithmeticException
int[] list = new int[-1];  //Kode penyebab NegativeArraySizeException
Exception in thread "main" java.lang.ArithmeticException: / by zero
Exception in thread "main" java.lang.NegativeArraySizeException: -1
1 Lihat https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/RuntimeException.html
Tipe Data dan Exception di Java

Exception "Checked"

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
1 Lihat https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/Exception.html
Tipe Data dan Exception di Java

Ayo berlatih!

Tipe Data dan Exception di Java

Preparing Video For Download...