Bắt đầu ngayBắt đầu miễn phí

RuntimeException

RuntimeExceptions không bắt buộc phải có khối try/catch trong mã. Thông thường bạn có thể tránh chúng bằng cách viết mã đúng chuẩn. Tuy nhiên, khi lỗi không được phát hiện và RuntimeException không được bắt, ứng dụng sẽ bị lỗi và hiển thị thông tin sự cố mà người dùng có thể không hiểu. Trong bài tập này, bạn sẽ thấy điều gì xảy ra khi bạn không bắt một RuntimeException có thể xảy ra và điều gì xảy ra khi bạn dùng try/catch để xử lý chúng.

Bài tập này là một phần của khóa học

Kiểu dữ liệu và Exceptions trong Java

Xem khóa học

Hướng dẫn bài tập

  • Xem xét các phương thức withoutTryCatch()withTryCatch trong ứng dụng này và lưu ý điểm khác nhau giữa chúng.
  • Chạy ứng dụng mà không thay đổi gì - hành động này sẽ gọi phương thức withoutTryCatch() và gây ra RuntimeException.
  • Comment dòng 5 và bỏ comment dòng 7, sau đó chạy lại ứng dụng. Lần này phương thức withTryCatch() sẽ chạy và xử lý RuntimeException.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

public class RuntimeExceptionHandling {

	public static void main(String[] args) {
		// Comment out this line
		withoutTryCatch();
		// Uncomment this line
		// withTryCatch();
	}

	public static void withoutTryCatch() {
		String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
		String selectedMount = mounts[4];
		System.out.println("Selected item is: " + selectedMount);
	}

	public static void withTryCatch() {
		try {
			String[] mounts = { "Everest", "K2", "Kangchenjunga", "Lhotse" };
			String selectedMount = mounts[4];
			System.out.println("Selected item is: " + selectedMount);
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("Oops - made a mistake accessing the mounts array with a bad index.");
		}
	}
}
Chỉnh sửa và Chạy Mã