Mục lục
Exception là gì?
Exception là một sự kiện bất ngờ xảy ra trong quá trình thực thi chương trình làm phá vỡ luồng chạy bình thường của chương trình. Exception có thể gây crash chương trình nếu chúng không được xử lý thoả đáng.
Phân biệt giữa Error và Exception
Error – Là một lỗi nghiêm trọng trong hệ thống, trong trường hợp này hệ thống nên bị crash hơn là chúng ta cố gắng sữa lỗi.
Exception – Chỉ ra các trường hợp mà chương trình không xử lý được do dữ kiện sai hoặc có vấn đề trong kết nối etc. Exception nên được try-catch và xử lý tại thời điểm run-time.
Các loại Exception trong java
Nói Exception thì nghe chung chung quá nên java đã chia thành các loại exception khác nhau. Mỗi loại Exception mô tả một vấn đề tương ứng, như vậy có thể giúp chúng ta nhanh chóng khoanh vùng lỗi xảy ra. Ví dụ NullPointerException chỉ ra rằng chúng ta đang cố gắng tham chiếu đến một giá trị null hay ArithmeticException nói rằng người dùng cung cấp dữ liệu không hợp lệ.
Exception được chia thành 2 loại chính:
- CheckedException
- UncheckedException
CheckedException
CheckedException là các exception có thể nhìn thầy và kiểm tra tại thời điểm biên dịch. Các exception này phải được xử trong quá trình viết mã nếu không trình biên dịch sẽ báo lỗi. Ví dụ như SQLException, IOException etc.
import java.io.*; class Main { public static void main(String[] args) throws IOException { FileReader file = new FileReader("C:\\test\\a.txt"); BufferedReader fileInput = new BufferedReader(file); // Print first 3 lines of file "C:\test\a.txt" for (int counter = 0; counter < 3; counter++) System.out.println(fileInput.readLine()); fileInput.close(); } }
UncheckedException
UncheckedException là các exception không thể nhìn thấy và kiểm tra tại thời điểm biên dịch. Ví dụ như ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException etc.
class Main { public static void main(String args[]) { int x = 0; int y = 10; int z = y/x; } }
Output
Exception in thread “main” java.lang.ArithmeticException: / by zero at Main.main(Main.java:5) Java Result: 1
Cách xử lý Exception
Đối với các CheckedException này chúng ta cần xử lý bằng cách sử dụng try – catch hoặc sử dụng từ khoá throws . Nếu xảy ra các Unchecked exception là do lỗi của lập trình viên chưa kiểm tra đầy đủ các điều kiện đầu vào.
Lời kết
Exception là một trong những phần quan trọng trong một chương trình. Khi một chương trình chạy sẽ có rất nhiều vấn đề bất ngờ xảy ra mà chúng ta cần xử lý để đảm bảo chương trình không bị phá vỡ luồng chạy ban đầu.
Nguồn tham khảo
Exception handling in java with examples