Từ khóa Show Cú pháp từ khóa throw: Ví dụ về throw
Ví dụ về từ khóa throw trong javathrow ra ngoại lệ nhưng không xử lý: Trong ví dụ này, chúng ta tạo ra phương thức validate() với tham số truyền vào là giá trị integer. Nếu tuổi dưới 18, chúng ta ném ra ngoại lệ ArithmeticException nếu không in ra một thông báo "welcome".
throw ra ngoại lệ nhưng có xử lý
Nội dung chính
Từ khóa throws trong java được sử dụng để khai báo một ngoại lệ. Nó thể hiện thông tin cho lập trình viên rằng có thể xảy ra một ngoại lệ, vì vậy nó là tốt hơn cho các lập trình viên để cung cấp các mã xử lý ngoại lệ để duy trì luồng bình thường của chương trình. Exception Handling chủ yếu được sử dụng để xử lý ngoại lệ checked. Nếu xảy ra bất kỳ ngoại lệ unchecked như NullPointerException, đó là lỗi của lập trình viên mà anh ta không thực hiện kiểm tra trước khi code được sử dụng. Cú pháp của throws trong javareturn_type method_name() throws exception_class_name { / /method code } Ngoại lệ nào nên được khai báoChỉ ngoại lệ checked, bởi vì:
Lợi ích của từ khóa throws trong java
Ví dụ về từ khóa throws trong javaDuới đây là ví dụ về mệnh đề throws trong java mô tả rằng ngoại lệ checked có thể được truyền ra bằng từ khóa throws. import java.io.IOException; public class TestThrows1 { void m() throws IOException { throw new IOException("Loi thiet bi");// checked exception } void n() throws IOException { m(); } void p() { try { n(); } catch (Exception e) { System.out.println("ngoai le duoc xu ly"); } } public static void main(String args[]) { TestThrows1 obj = new TestThrows1(); obj.p(); System.out.println("luong binh thuong..."); } } Output: ngoai le duoc xu ly luong binh thuong... Quy tắc: Nếu bạn đang gọi một phương thức khai báo throws một ngoại lệ, bạn phải bắt hoặc throws ngoại lệ đó. Có hai trường hợp:
TH1: xử lý ngoại lệ với try/catchTrong trường hợp bạn xử lý ngoại lệ, code sẽ được thực thi tốt cho dù ngoại lệ có xuất hiện trong chương trình hay không. import java.io.IOException; class M { void method() throws IOException { throw new IOException("Loi thiet bi"); } } public class TestThrows2 { public static void main(String args[]) { try { M m = new M(); m.method(); } catch (Exception e) { System.out.println("Ngoai le duoc xu ly"); } System.out.println("Luong binh thuong..."); } } Output: Ngoai le duoc xu ly Luong binh thuong... TH2: Khai báo throws ngoại lệ
A) Ngoại lệ không xảy ra import java.io.IOException; class M { void method() throws IOException { System.out.println("Thiet bi dang hoat dong tot"); } } public class TestThrows2 { public static void main(String args[]) throws IOException { M m = new M(); m.method(); System.out.println("Luong binh thuong..."); } } Output: Thiet bi dang hoat dong tot Luong binh thuong... Ngoại lệ xảy ra import java.io.IOException; class M { void method() throws IOException { throw new IOException("Thiet bi"); } } public class TestThrows2 { public static void main(String args[]) throws IOException { M m = new M(); m.method(); System.out.println("Luong binh thuong..."); } } Output: Exception in thread "main" java.io.IOException: Thiet bi |