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:
1
2
3
4
5
6
7
8
9
|
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:
1
2
3
4
5
6
7
8
9
10
|
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. Cảm ơn các bạn đã theo dõi bài viết này.
Theo: freetuts.net