Tổng quan về Exception trong Java

Trong bài đầu tiên của chương Exception, tôi sẽ hướng dẫn các bạn tìm hiểu tổng quan về Exception trong Java. Sang các bài sau, chúng ta sẽ lần lượt tìm hiểu kỹ hơn về các vấn đề của Exception. Đây là chương khá quan trọng nên các bạn cố gắng theo dõi để nắm chắc nhé!

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. 

  • 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ó. 
  • 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.

  • Sử dụng khối try...catch để xử lý.
  • Sử dụng multicatch để bắt nhiều ngoại lệ.
  • Sử dụng khối try...catch...finally.
  • Sử dụng try with resource.
  • Sử dụng Nested try (lồng một khối try trong một try khác).
  • Sử dụng từ khóa throwthrows.

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. Sang bài sau, chúng ta sẽ đi vào tìm hiểu lần lượt về các cách xử lý Exception trong Java. Các bạn theo dõi nhé!

-------------------#####-------------------

Hiện mình thấy có 3 khóa học liên quan đến JAVA sẽ rất hữu ích cho các bạn, mời các bạn tham khảo nhé.

Nguồn: freetuts.net