Hướng dẫn Java

TRANG CHỦ Java Giới thiệu Java Java Bắt đầu Cú pháp Java Nhận xét Java Các biến Java Các kiểu dữ liệu Java Truyền kiểu Java Toán tử Java Chuỗi Java Toán Java Java Booleans Java Nếu ... Khác Chuyển đổi Java Java While Loop Java cho vòng lặp Ngắt / Tiếp tục Java Mảng Java

Phương thức Java

Phương thức Java Các tham số phương pháp Java Nạp chồng phương pháp Java Phạm vi Java Đệ quy Java

Các lớp Java

Java OOP Các lớp / đối tượng Java Thuộc tính lớp Java Phương thức lớp Java Trình tạo Java Các công cụ sửa đổi Java Đóng gói Java Gói / API Java Kế thừa Java Đa hình Java Các lớp bên trong Java Tóm tắt Java Giao diện Java Java Enums Đầu vào của người dùng Java Ngày Java Java ArrayList Java LinkedList Java HashMap Java HashSet Trình lặp lại Java Các lớp Java Wrapper Các trường hợp ngoại lệ của Java Java RegEx Chủ đề Java Java Lambda

Xử lý tệp Java

Tệp Java Java Tạo / Viết tệp Java đọc tệp Java Xóa tệp

Java Cách thực hiện

Thêm hai số

Tham khảo Java

Từ khóa Java Phương thức chuỗi Java Phương pháp toán học Java

Ví dụ về Java

Ví dụ về Java Trình biên dịch Java Bài tập Java Java Quiz Chứng chỉ Java


Các ngoại lệ của Java - Hãy thử ... Bắt


Các trường hợp ngoại lệ của Java

Khi thực thi mã Java, các lỗi khác nhau có thể xảy ra: lỗi mã hóa do lập trình viên thực hiện, lỗi do nhập sai hoặc những điều không thể lường trước khác.

Khi một lỗi xảy ra, thông thường Java sẽ dừng lại và tạo ra một thông báo lỗi. Thuật ngữ kỹ thuật cho điều này là: Java sẽ ném một ngoại lệ (ném một lỗi).


Java thử và nắm bắt

Câu trylệnh cho phép bạn xác định một khối mã để kiểm tra lỗi trong khi nó đang được thực thi.

Câu catchlệnh cho phép bạn xác định một khối mã sẽ được thực thi, nếu có lỗi xảy ra trong khối try.

Từ khóa trycatchtừ khóa đi theo cặp:

Cú pháp

try {
  //  Block of code to try
}
catch(Exception e) {
  //  Block of code to handle errors
}

Hãy xem xét ví dụ sau:

Điều này sẽ tạo ra lỗi, vì myNumbers [10] không tồn tại.

public class Main {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}

Đầu ra sẽ như thế này:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)

Nếu xảy ra lỗi, chúng tôi có thể sử dụng try...catchđể bắt lỗi và thực thi một số mã để xử lý nó:

Thí dụ

public class Main {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    }
  }
}

Đầu ra sẽ là:

Something went wrong.

Cuối cùng

Câu finallylệnh cho phép bạn thực thi mã, sau đó try...catch, bất kể kết quả như thế nào:

Thí dụ

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    } finally {
      System.out.println("The 'try catch' is finished.");
    }
  }
}

Đầu ra sẽ là:

Something went wrong.
The 'try catch' is finished.


Từ khóa ném

Câu throwlệnh cho phép bạn tạo một lỗi tùy chỉnh.

Câu throwlệnh được sử dụng cùng với một kiểu ngoại lệ . Có nhiều kiểu ngoại lệ có sẵn trong Java : ,,,, ArithmeticExceptionv.v .:FileNotFoundExceptionArrayIndexOutOfBoundsExceptionSecurityException

Thí dụ

Đưa ra một ngoại lệ nếu tuổi dưới 18 (in "Quyền truy cập bị từ chối"). Nếu từ 18 tuổi trở lên, hãy in "Đã cấp quyền truy cập":

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Access denied - You must be at least 18 years old.");
    }
    else {
      System.out.println("Access granted - You are old enough!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Set age to 15 (which is below 18...)
  }
}

Đầu ra sẽ là:

Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)

Nếu tuổi 20, bạn sẽ không có ngoại lệ:

Thí dụ

checkAge(20);

Đầu ra sẽ là:

Access granted - You are old enough!

Kiểm tra bản thân với các bài tập

Bài tập:

Chèn các phần còn thiếu để xử lý lỗi trong đoạn mã bên dưới.

 {
  int[] myNumbers = {1, 2, 3};
  System.out.println(myNumbers[10]);
}  (Exception e) {
  System.out.println("Something went wrong.");
}