Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để xử lý Runtime Exception trong Java?

Runtime Exception là lớp cha trong tất cả các trường hợp ngoại lệ của ngôn ngữ lập trình Java được dự kiến ​​sẽ gây sự cố hoặc phá vỡ chương trình hoặc ứng dụng khi chúng xảy ra. Không giống như các ngoại lệ không được coi là Ngoại lệ thời gian chạy, Ngoại lệ thời gian chạy không bao giờ được kiểm tra.

Runtime Exception thường hiển thị lỗi của lập trình viên, chứ không phải là điều kiện mà chương trình phải xử lý. Runtime Exceptions cũng được sử dụng khi một điều kiện không thể xảy ra. Cần lưu ý rằng khi một chương trình sắp hết bộ nhớ, một lỗi chương trình sẽ xuất hiện thay vì hiển thị nó dưới dạng Ngoại lệ thời gian chạy.

Các trường hợp ngoại lệ thời gian chạy phổ biến nhất là NullPointerException , ArrayIndexOutOfBoundsException Không hợp lệArgumentException . Máy ảo Java ném hai ngoại lệ thời gian chạy đầu tiên.

  • NullPointerException là ngoại lệ do Máy ảo Java ném ra khi người dùng thực hiện một số thao tác trên một đối tượng nhất định được coi là null hoặc đang gọi một số phương thức trên đối tượng null. Người dùng không nên cố gắng xử lý loại ngoại lệ này vì nó sẽ chỉ vá sự cố chứ không khắc phục hoàn toàn.
  • ArrayIndexOutOfBoundsException là ngoại lệ được tự động ném bởi Môi trường thời gian chạy Java khi một chương trình Java nào đó cố gắng truy cập không chính xác một vị trí nhất định trong một tập hợp không tồn tại. Điều này thường xảy ra khi chỉ số mảng được yêu cầu là số âm hoặc lớn hơn hoặc bằng kích thước của mảng. Các mảng của Java sử dụng lập chỉ mục dựa trên 0; do đó, phần tử đầu tiên của mảng đó có chỉ số bằng 0, phần tử cuối cùng có chỉ số có kích thước 1 và phần tử thứ n có chỉ số n-1.
  • Không hợp lệArgumentException là một ngoại lệ được đưa ra khi một tham số không hợp lệ được chuyển đến một phương thức nhất định trên kết nối được tham chiếu của máy chủ.

Ví dụ

public class MyExceptionTest {
   public void testRuntimeException () {
      throw new MyException();
   }
   public static void main(String[] args) {
      try {
         new MyExceptionTest().testRuntimeException();
      } catch(Exception e) {
         System.out.println(e.getClass().getName());
      }
   }
}
class MyException extends RuntimeException {
   public MyException() {
      super();
   }
}

Đầu ra

MyException