CodeGym /Blog Java /Ngẫu nhiên /Java bắt nhiều ngoại lệ

Java bắt nhiều ngoại lệ

Xuất bản trong nhóm
Trước khi tìm hiểu về cách bắt nhiều ngoại lệ, bạn cần làm quen với việc xử lý ngoại lệ cơ bản trong Java. Về sau, chúng tôi cho rằng bạn đã quen thuộc với khối thử và bắt trong Java.

Tại sao chúng ta cần nhiều khối bắt trong Java?

Nhiều khối bắt trong Java được sử dụng để xử lý các loại ngoại lệ khác nhau. Trước khi Java 7 được khởi chạy, chúng tôi cần một khối bắt cụ thể để bắt một ngoại lệ cụ thể. Điều này tạo ra các khối mã dự phòng và do đó dẫn đến một cách tiếp cận không hiệu quả. Hãy xem ví dụ sau để chứng kiến ​​các trường hợp ngoại lệ bị bắt. Nó sử dụng các khối bắt riêng biệt cho các loại ngoại lệ khác nhau.

Ví dụ sử dụng các khối bắt riêng biệt


import java.util.Arrays;

public class ExceptionHandler {

	public static void main(String[] args) {

		Integer[] colorsOfASpectrum = { 7, 6, 5, 4, 3, 2, 1, 0 };

		try {

			System.out.println("Total number of options on a dice are: " + Arrays.toString(colorsOfASpectrum));
		
	// 		un-comment the following line to see "Index Out of Bounds Exception"		
	//		colorsOfASpectrum[10] = 7; // Index Out of Bounds Exception
			
			System.out.println(colorsOfASpectrum[0] / 0);	// Arithmetic Exception

		} catch (ArrayIndexOutOfBoundsException e) {
			// This catch block executes in case of "Index Out of Bounds Exception"
			System.out.println("Array Index Out Of Bounds Exception " + e);
		
		} catch (ArithmeticException e) {
			// This catch block executes in case of "Arithmetic Exception"
			System.out.println("Arithmetic Exception " + e);
		}
		
		System.out.println("\n----Rest of the code executes here----");
	}
}

đầu ra

Tổng số màu trên quang phổ là: [7, 6, 5, 4, 3, 2, 1] Đã gặp ngoại lệ java.lang.ArithmeticException: / by zero ----Phần còn lại của mã thực thi ở đây----
Như bạn có thể thấy, trong ví dụ trên, một khối khác được thực thi khi một ngoại lệ được ném ra. Có một cách hiệu quả hơn để bắt nhiều ngoại lệ bằng cách sử dụng cùng một khối mã để bắt các loại ngoại lệ khác nhau. Hãy xem ví dụ sau.

Ví dụ sử dụng Multiple Catch Block trong Java


import java.util.Arrays;

public class MultiExceptionHandler {

	public static void main(String[] args) {

		Integer[] colorsOfASpectrum = { 7, 6, 5, 4, 3, 2, 1 };

		try {

			System.out.println("Total colors on a spectrum are: " + Arrays.toString(colorsOfASpectrum));

	//		colorsOfASpectrum[10] = 7; // Index Out of Bounds Exception
			System.out.println(colorsOfASpectrum[0] / 0); // Arithmetic Exception

		} catch (ArrayIndexOutOfBoundsException | ArithmeticException e) {
			// We don't need two different catch blocks for different kinds of exceptions
			// Both exceptions will be handled using this multiple catch block

			System.out.println("Exception Encountered " + e);
		}
		System.out.println("\n----Rest of the code executes here----");
	}
}

đầu ra

Bạn có thể bỏ ghi chú dòng 13 để in ngoại lệ thuộc loại khác.
Tổng số màu trên quang phổ là: [7, 6, 5, 4, 3, 2, 1] Đã gặp ngoại lệ java.lang.ArithmeticException: / by zero ----Phần còn lại của mã thực thi ở đây----

Phần kết luận

Đây là tổng quan nhanh về việc sử dụng khối bắt nhiều ngoại lệ java. Để thử thách, hãy thử in ngoại lệ cha và con trong cùng một khối. Bạn được khuyến khích học hỏi và rèn luyện để trưởng thành. Chúc mừng và học tập hạnh phúc!
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION