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.
Bài viết này được đăng tại [free tuts .net]
- 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:
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:
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ộttry
khác). - 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. 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é!
Câu hỏi thường gặp liên quan: