Cộng đồng chia sẻ tri thức Lib24.vn

Tổng quan về Exception trong Java

Gửi bởi: Phạm Thọ Thái Dương 28 tháng 10 2019 lúc 11:09:24


Mục lục
* * * * *

1. Exception (Ngoại lệ) là gì?

Exception là một sự kiện chỉ xảy ra trong quá trình chương trình Java thực thi một câu lệnh nào đó và thông thường nó sẽ phá vỡ luồng làm việc của chương trình, tức là chương trình đang chạy sẽ lập tức ngừng lại và xuất hiện thông báo lỗi. Đó chính là Exception (ngoại lệ).

Ví dụ dễ hiểu nhất về Exception đó chính là khi chúng ta tiến hành thực hiện phép chia một số nguyên dương cho số 0 thì khi biên dịch chương trình sẽ làm phát sinh lỗi và đó được coi là ngoại lệ.

2. Các loại Exception trong Java

Trong Java có 2 loại Exception là Checked Exception và Unchecked Exception. 

  1. Checked Exception là các Exception xảy ra tại thời điểm Compile time (là thời điểm chương trình đang được biên dịch). Những Exception này thường liên quan đến lỗi cú pháp (syntax) và bắt buộc chúng ta phải "bắt" (catch) nó. 
  2. Unchecked Exception: là các Exception xảy ra tại thời điểm Runtime (là thời điểm chương trình đang chạy). Những Exception này thường liên quan đến lỗi logic và không bắt buộc chúng ta phải "bắt" (catch) nó.

Sau đây tôi sẽ đưa ra 2 ví dụ minh họa Checked Exception và Unchecked Exception:

CheckedException.java

package vidu;
 
public class CheckedException {
 
    public static void main(String[] args) {
        System.out.println(ABC);
    }
     
}

  Lúc này, ngay tại dòng code System.out.println(ABC); sẽ bị lỗi. Lý do là vì ví dụ này mục đích là để hiển thị một chuỗi, mà đã hiển thị chuỗi thì bắt buộc chuỗi đó phải nằm trong cặp dấu " ". Đây chính là Checked Exception, lúc này nếu chúng ta tiến hành chạy chương trình thì sẽ có thông báo lỗi hiển thị trong cửa sổ Console. Kết quả biên dịch chương trình như sau:  

UncheckedException.java

package vidu;
 
public class UncheckedException {
 
    public static void main(String[] args) {
        int a = 5, b = 0;
        System.out.println(a/b);
    }
 
}

Lúc này, chương trình sẽ không báo lỗi gì trong đoạn code của chúng ta nhưng khi biên dịch thì sẽ có thông báo lỗi "/ by zero" (lỗi chia cho 0) trong màn hình Console. Đây chính là Unchecked Exception. Kết quả sau khi biên dịch chương trình:

3. Các cách xử lý Exception

Trong Java, để xử lý ngoại lệ chúng ta sẽ có các cách được liệt kê dưới đây và chi tiết về các cách này tôi sẽ giới thiệu trong các bài sau.

  1. Sử dụng khối try...catch để xử lý.
  2. Sử dụng multicatch để bắt nhiều ngoại lệ.
  3. Sử dụng khối try...catch...finally.
  4. Sử dụng try with resource.
  5. Sử dụng Nested try (lồng một khối try trong một try khác).
  6. Sử dụng từ khóa throw và throws.

4. Lời kết

Trong bài này, tôi đã giới thiệu đến các bạn Tổng quan về Exception trong Java. 


Được cập nhật: 16 tháng 4 lúc 14:09:38 | Lượt xem: 430

Các bài học liên quan