Exception là gì? Tổng quan về Exception trong Java

10592

Bài viết được sự cho phép của BBT Tạp chí Lập trình

Exception là gì?

Ý nghĩa trong từ điển: Exception là một tình trạng bất thường.

Trong Java, Exception là một sự kiện mà phá vỡ luồng chuẩn của chương trình. Nó là một đối tượng mà được ném tại Runtime. Một exception (ngoại lệ) trong Java là một vấn đề xảy ra trong quá trình thực hiện của chương trình. Một ngoại lệ có thể xảy ra với nhiều lý do khác nhau, như dưới đây:

  • Người dùng nhập dữ liệu không hợp lệ.
  • Một file cần được mở nhưng không thể tìm thấy.
  • Kết nối mạng bị ngắt trong quá trình thực hiện giao tiếp hoặc JVM hết bộ nhớ.

Tuyển dụng lập trình viên Java lương cao tại đây

Một vài những ngoại lệ xảy ra bởi lỗi của người dùng, một số khác bởi lỗi của lập trình viên và số khác nữa đến từ lỗi của nguồn dữ liệu vật lý.

Để hiểu về cách xử lý ngoại lệ trong Java, bạn cần phải hiểu những loại ngoại lệ như sau:

Checked Exception

Checked Exception: Là ngoại lệ thường xảy ra do người dùng mà không thể lường trước được bởi lập trình viên. Ví dụ, một file được mở, nhưng file đó không thể tìm thấy và ngoại lệ xảy ra. Những ngoại lệ này không thể được bỏ qua trong quá trình biên dịch. Checked Exception là các lớp mà kế thừa lớp Throwable ngoại trừ RuntimeException và Error. Ví dụ như IOException, SQLException, … Checked Exception được kiểm tra tại thời gian biên dịch compile-time.

Unchecked Exception

Unchecked Exception: Một ngoại lệ xảy ra ở runtime là ngoại lệ có thể tránh được bởi lập trình viên. Unchecked Exception là các lớp kế thừa RuntimeException, ví dụ ArithmaticException, NullPointerException, ArrayIndexOutOfBoundsException, … Unchecked Exception không được kiểm tra tại compile-time, thay vào đó chúng được kiểm tra tại runtime.

Error

Error: Nó không giống các exception, nhưng vấn đề xảy ra vượt quá tầm kiểm soát của lập trình viên hay người dùng. Error được bỏ qua trong code của bạn vì bạn hiếm khi có thể làm gì đó khi chương trình bị error. Ví dụ như OutOfMemoryError, VirtualMachineError, AssertionError, … Nó được bỏ qua trong quá trình Java biên dịch.

Exception Handling

Xử lý ngoại lệ (Exception Handling) là một kỹ thuật để xử lý các Runtime Error như ClassNotFound, IO, SQL, Remote, … Lợi thế chính của xử lý ngoại lệ là để duy trì luồng chuẩn của ứng dụng. Exception thường phá vỡ luồng chuẩn của ứng dụng, và đó là tại sao chúng ta sử dụng Exception Handling.

Cấp bậc exception trong Java

Tất cả các lớp exception đều là lớp con của lớp java.lang.Exception . Lớp exception là lớp con của lớp Throwable. Một loại lớp exception khác là Error cũng là lớp con của lớp Throwable.

Error không thường được đặt bẫy bởi các chương trình Java. Error thường được tạo ra để thể hiện lỗi trong môi trường runtime. Ví dụ: JVM hết bộ nhớ. Thông thường các chương trình không thể khôi phục từ các lỗi.

Lớp Exception có hai lớp con chính là : IOException và RuntimeException.

Các phương thức của lớp Exceptions trong Java

Dưới đây là danh sách các phương thức phố biến của lớp Throwable trong Java:

  1. public String getMessage(): Trả về một message cụ thể về exception đã xảy ra. Message này được khởi tạo bởi phương thức constructor của Throwable.
  2. public Throwable getCause(): Trả về nguyên nhân xảy ra exception biểu diễn bởi đối tượng Throwable
  3. public String toString(): Trả về tên của lớp và kết hợp với kết quả từ phương thức getMessage().
  4. public void printStackTrace(): In ra kết quả của phương thức toString cùng với stack trace đến System.err.
  10 câu hỏi JavaScript để tăng cường kỹ năng của bạn
  1001 cách tạo Array trong Javascript (Phần 1)

Các từ khóa để Xử lý ngoại lệ trong Java

Có 5 từ khóa được sử dụng để Xử lý ngoại lệ trong Java, đó là:

  1. try.
  2. catch.
  3. finally.
  4. throw.
  5. throws.

Bài viết gốc được đăng tải từ Trần Quang Huy tại Tạp chí Lập trình

Có thể bạn quan tâm:

Xem thêm các việc làm Java hấp dẫn tại TopDev