Trong Java, throw
và throws
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 throw
và throws
, cùng với ví dụ minh họa để giúp bạn hiểu rõ hơn.
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).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).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ệ } }
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()); } } }
Khía cạnh | throw | throws |
---|---|---|
Chức năng | Né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ụng | Trong thân phương thức | Trong khai báo phương thức |
Loại ngoại lệ | Cả checked và unchecked | Chỉ checked exceptions |
Sự khác biệt giữa throw
và throws
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.