CodeGym /Blog Java /Aleatoriu /Java Captură mai multe excepții
John Squirrels
Nivel
San Francisco

Java Captură mai multe excepții

Publicat în grup
Înainte de a învăța despre capturarea mai multor excepții, trebuie să fiți familiarizat cu gestionarea de bază a excepțiilor în Java. Mergând înainte, presupunem că sunteți familiarizat cu un bloc try and catch în Java.

De ce avem nevoie de mai multe blocuri catch în Java?

Mai multe blocuri catch în Java sunt folosite pentru a gestiona diferite tipuri de excepții. Înainte de lansarea Java 7, aveam nevoie de un bloc catch specific pentru a captura o anumită excepție. Acest lucru a creat blocuri de cod redundant și, prin urmare, a dus la o abordare ineficientă. Aruncă o privire la următorul exemplu pentru a fi martor la excepțiile prinse. Folosește blocuri de captură separate pentru diferite tipuri de excepții.

Exemplu de utilizare a blocurilor de prindere separate


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----");
	}
}

Ieșire

Culorile totale pe un spectru sunt: ​​[7, 6, 5, 4, 3, 2, 1] Excepție întâlnită java.lang.ArithmeticException: / prin zero ----Restul codului se execută aici----
După cum puteți vedea, în exemplul de mai sus, un bloc diferit este executat atunci când este aruncată o excepție. Există o modalitate mai eficientă de a captura mai multe excepții folosind același bloc de cod pentru a captura excepții de diferite tipuri. Aruncă o privire la următorul exemplu.

Exemplu folosind Multiple Catch Block în 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----");
	}
}

Ieșire

Puteți anula comentariile rândului 13 pentru a tipări excepția de alt fel.
Culorile totale pe un spectru sunt: ​​[7, 6, 5, 4, 3, 2, 1] Excepție întâlnită java.lang.ArithmeticException: / prin zero ----Restul codului se execută aici----

Concluzie

Aceasta a fost o prezentare rapidă a utilizării blocului de excepții multiple catch java. Ca o provocare, încercați să imprimați excepția părinte și copil în același bloc. Ești încurajat să înveți și să exersezi pentru a crește. Noroc și învățare fericită!
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION