Trong Java, throwthrows là hai khái niệm quan trọng liên quan đến xử lý ngoại lệ, nhưng chúng có mục đích và cách sử dụng khác nhau. Bài viết này sẽ giải thích chi tiết sự khác biệt giữa throwthrows, cùng với ví dụ minh họa để giúp bạn hiểu rõ hơn.

1. Khái niệm

1.1. throw

  • throw là một từ khóa được sử dụng để ném một ngoại lệ cụ thể trong một phương thức hoặc khối mã. Khi bạn muốn ném một ngoại lệ, bạn sử dụng từ khóa này, theo sau là một đối tượng của lớp ngoại lệ.
  • throw có thể được sử dụng với cả ngoại lệ đã được kiểm tra (checked) và chưa được kiểm tra (unchecked).

1.2. throws

  • throws là một từ khóa được sử dụng trong khai báo phương thức để chỉ ra rằng phương thức có thể ném một hoặc nhiều ngoại lệ. Khi bạn khai báo một phương thức với throws, bạn đang thông báo cho người dùng phương thức rằng họ cần phải xử lý ngoại lệ đó.
  • throws chỉ có thể được sử dụng với ngoại lệ đã được kiểm tra (checked exceptions).

2. Cách sử dụng

2.1. Sử dụng throw

Khi bạn muốn ném một ngoại lệ trong thân phương thức, bạn sử dụng throw. Dưới đây là một ví dụ:

public class Example {
    public void checkAge(int age) {
        if (age < 18) {
            throw new IllegalArgumentException("Tuổi phải lớn hơn hoặc bằng 18");
        }
    }
    
    public static void main(String[] args) {
        Example example = new Example();
        example.checkAge(15); // Ném ngoại lệ
    }
}

2.2. Sử dụng throws

Khi bạn khai báo một phương thức có thể ném ngoại lệ, bạn sử dụng throws. Ví dụ:

public class Example {
    public void mayThrowException() throws Exception {
        throw new Exception("Đã xảy ra lỗi!");
    }
    
    public static void main(String[] args) {
        Example example = new Example();
        try {
            example.mayThrowException(); // Gọi phương thức có thể ném ngoại lệ
        } catch (Exception e) {
            System.out.println("Ngoại lệ: " + e.getMessage());
        }
    }
}

3. Tóm tắt sự khác biệt

Khía cạnhthrowthrows
Chức năngNém một ngoại lệ cụ thểThông báo rằng phương thức có thể ném ngoại lệ
Sử dụngTrong thân phương thứcTrong khai báo phương thức
Loại ngoại lệCả checked và uncheckedChỉ checked exceptions

4. Kết luận

Sự khác biệt giữa throwthrows là rất quan trọng trong việc xử lý ngoại lệ trong Java. throw được sử dụng để ném một ngoại lệ cụ thể, trong khi throws được sử dụng trong khai báo phương thức để thông báo cho người dùng rằng phương thức có thể ném một hoặc nhiều ngoại lệ. Hiểu rõ sự khác biệt này sẽ giúp bạn xử lý ngoại lệ một cách hiệu quả hơn trong ứng dụng Java của mình.