Exception
Duy Văn | 12/03/2025
Về cơ bản exception của Java rất giống bên Python, phía python là try - except, Java là try - catch
try {
// Code that may raise exception
} catch (Exception e) {
// Code to handle exception
}
Exception Class
Exception class là class cha của tất cả các exception trong Java, nó là class abstract nên không thể tạo instance của nó, mà chúng ta phải tạo instance của các class con của nó như ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException,…
Để sử dụng chúng thì mục đích của chúng là để bắt đúng exception mà chúng ta muốn, và nếu không bắt được thì chúng ta có thể bắt exception cha của nó là Exception
try {
int a = 5 / 0;
} catch (ArithmeticException e) {
System.out.println("Cannot divide by zero");
} catch (Exception e) {
System.out.println("Something went wrong");
}
Nó sẽ đi từ trên đi xuống cho đến khi gặp được đúng exception mà chúng ta muốn bắt, nếu không gặp được thì sẽ bắt exception cha của nó là Exception
Ngoài ra chúng ta có thể có một block finally để chạy code sau khi try - catch kết thúc
try {
int a = 5 / 0;
} catch (ArithmeticException e) {
System.out.println("Cannot divide by zero");
} catch (Exception e) {
System.out.println("Something went wrong");
} finally {
System.out.println("The 'try catch' is finished");
}
codeblock này chắc chắn sẽ được chạy dù có exception hay không
Throw
Throw - throw là một keyword để chúng ta chủ động ném ra một exception, chúng ta có thể ném ra exception bất kỳ lúc nào, và nó sẽ dừng chương trình ngay lập tức, chúng ta có thể truyền vào thông báo lỗi tuỳ ý
try {
throw new ArithmeticException("Cannot divide by zero");
} catch (ArithmeticException e) {
System.out.println(e.getMessage());
}
Để xem tất cả các lỗi và exception, xem tại đây