Ném từ khóa vào Java

⚡ Tóm tắt thông minh

Ném từ khóa vào Java Từ khóa `try-catch` được sử dụng trong khai báo phương thức để thông báo các ngoại lệ đã được kiểm tra mà phương thức có thể gây ra trong quá trình thực thi. Nó ủy thác việc xử lý ngoại lệ cho phương thức gọi thay vì buộc phải có khối `try-catch` bên trong.

  • 📢 Định nghĩa về các cú ném: Khai báo các ngoại lệ mà một phương thức có thể gây ra để người gọi có thể xử lý chúng.
  • 🧱 Cú pháp: Được đặt sau chữ ký phương thức, ví dụ: method(args) throws Exception1, Exception2.
  • 🔁 Hai lựa chọn: Hãy xử lý ngoại lệ bằng khối try-catch hoặc khai báo ngoại lệ bằng từ khóa throws.
  • ⚖️ ném vs ném bóng: Hàm `throw` ném ra một đối tượng ngoại lệ duy nhất; `throws` liệt kê một hoặc nhiều đối tượng ngoại lệ trong chữ ký.
  • ⚠️ Quy tắc của trình biên dịch: Các ngoại lệ được kiểm tra phải được bắt hoặc khai báo, nếu không quá trình biên dịch sẽ thất bại.

Ném từ khóa vào Java

Java Ném từ khóa

Java ném từ khóa được sử dụng để khai báo thông tin ngoại lệ có thể xảy ra trong quá trình thực hiện chương trình. Nó cung cấp thông tin về ngoại lệ cho người lập trình. Tốt hơn là cung cấp mã xử lý ngoại lệ để có thể duy trì luồng thực thi chương trình bình thường.

Java Cú pháp ném ngoại lệ

Giả sử trong chương trình java của bạn, bạn sử dụng một phương thức thư viện ném ra một Ngoại lệ


Java ném từ khóa

Trong chương trình của bạn, bạn sẽ xử lý ngoại lệ này bằng cách sử dụng thử & bắt.

import java.io.*;
class file1{
  public static void main(String[] args) {
     try{
           FileWriter file = new FileWriter("c:\\Data1.txt");
           file.write("Guru99");
           file.close();
    }
    catch(IOException){}
  }
}

Nếu bạn không xử lý ngoại lệ trong khối try-catch, quá trình biên dịch sẽ thất bại. Nhưng hầu hết các phương thức khác trong thư viện Java hoặc thậm chí do người dùng định nghĩa đều có thể ném ra một hoặc hai ngoại lệ. Việc xử lý tất cả các ngoại lệ bằng khối try-catch có thể rườm rà và sẽ cản trở hiệu suất của lập trình viên.

Vì vậy java cung cấp một tùy chọn, trong đó bất cứ khi nào bạn sử dụng một đoạn mã nguy hiểm trong định nghĩa phương thức, bạn sẽ khai báo nó ném một ngoại lệ mà không thực hiện thử bắt.

Java Cú pháp ném ngoại lệ

method (Arguments) throws Exception1,Exception2,Exception,… {}

Ném từ khóa vào Java Ví dụ

Hãy xem xét ví dụ tương tự như trên với các lần ném trong khai báo phương thức.

import java.io.*;
class file1{
    public static void main(String[] args) throws IOException{
      FileWriter file = new FileWriter("c:\\Data1.txt");
      file.write("Guru99");
      file.close();
    }
}

Lưu ý: Để chạy thành công các đoạn mã trên, trước tiên hãy tạo một tệp văn bản trống có tên Data1.txt trong ổ C của bạn. Tóm lại, có hai phương pháp để xử lý ngoại lệ:

  1. Đặt mã gây ra ngoại lệ trong khối thử và bắt.
  2. Khai báo phương thức để ném một Ngoại lệ

Nếu một trong hai điều trên không được thực hiện thì trình biên dịch đưa ra lỗi. Ý tưởng đằng sau việc thực thi quy tắc này là bạn với tư cách là một lập trình viên nhận thức được rằng một đoạn mã nhất định có thể có rủi ro và có thể gây ra ngoại lệ.

Sự khác biệt giữa ném và ném là gì?

quăng ném
Nó được sử dụng để tạo một đối tượng Ngoại lệ mới và ném nó Nó được sử dụng trong định nghĩa phương thức, để khai báo rằng một phương thức nguy hiểm đang được gọi.
Sử dụng từ khóa ném, bạn chỉ có thể khai báo một Ngoại lệ tại một thời điểm Sử dụng từ khóa ném bạn có thể khai báo nhiều ngoại lệ cùng một lúc.
Ví dụ: ném IOException mới ("không thể mở kết nối"); Ví dụ: ném IOException, ArrayIndexBoundException;

Câu Hỏi Thường Gặp

Từ khóa `throw` tạo ra một đối tượng ngoại lệ duy nhất bên trong thân phương thức, trong khi từ khóa `throws` xuất hiện trong chữ ký phương thức để khai báo một hoặc nhiều ngoại lệ mà phương thức có thể truyền cho người gọi của nó.

Đúng vậy. Một mệnh đề `throws` duy nhất có thể liệt kê nhiều ngoại lệ được phân tách bằng dấu phẩy, ví dụ: `throws IOException, SQLException`. Phương thức gọi sau đó phải xử lý hoặc khai báo thêm từng ngoại lệ đó.

Không. Các ngoại lệ không được kiểm tra (lớp con của RuntimeException) không cần phải được khai báo với từ khóa throws. Trình biên dịch chỉ bắt buộc khai báo hoặc xử lý đối với các ngoại lệ được kiểm tra như IOException.

Trí tuệ nhân tạo (AI) có thể đề xuất các khối try-catch phù hợp, đưa ra khuyến nghị nên bắt hay khai báo ngoại lệ, tạo ra các thông báo lỗi có ý nghĩa và phát hiện các ngoại lệ bị bỏ qua, giúp...ping Các nhà phát triển viết mã xử lý lỗi an toàn hơn và dễ bảo trì hơn.

Đúng vậy. Trí tuệ nhân tạo (AI) có thể phân tích phần thân của phương thức, xác định các thao tác rủi ro như truy cập tệp hoặc mạng, và đề xuất các ngoại lệ đã được kiểm tra cần khai báo trong mệnh đề `throws`, giảm thiểu việc bỏ sót khai báo và lỗi biên dịch.

Tóm tắt bài viết này với: