Exception là gì? Tại sao nó quan trọng?

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

Exception-classes-hierarchy

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

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x