CodeGym /Java blog /Tilfældig /Java fange flere undtagelser
John Squirrels
Niveau
San Francisco

Java fange flere undtagelser

Udgivet i gruppen
Før du lærer at fange flere undtagelser, skal du være fortrolig med grundlæggende undtagelseshåndtering i Java. Fremadrettet antager vi, at du er bekendt med en prøve-og-fang-blok i Java.

Hvorfor har vi brug for flere catch-blokke i Java?

Flere catch-blokke i Java bruges til at håndtere forskellige typer undtagelser. Før Java 7 blev lanceret, havde vi brug for en specifik catch-blok for at fange en specifik undtagelse. Dette skabte blokke af redundant kode og resulterede derfor i en ineffektiv tilgang. Tag et kig på følgende eksempel for at være vidne til fangede undtagelser. Den bruger separate catch-blokke til forskellige slags undtagelser.

Eksempel ved brug af Separate Catch Blocks


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

Produktion

Samlede farver på et spektrum er: [7, 6, 5, 4, 3, 2, 1] Undtagelse Encountered java.lang.ArithmeticException: / med nul ----Resten af ​​koden udføres her----
Som du kan se, udføres i eksemplet ovenfor en anden blok, når en undtagelse kastes. Der er en mere effektiv måde at fange flere undtagelser ved at bruge den samme kodeblok til at fange undtagelser af forskellige typer. Tag et kig på følgende eksempel.

Eksempel ved brug af Multiple Catch Block i 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----");
	}
}

Produktion

Du kan fjerne kommentaren til linje 13 for udskrivning med undtagelse af anden art.
Samlede farver på et spektrum er: [7, 6, 5, 4, 3, 2, 1] Undtagelse Encountered java.lang.ArithmeticException: / med nul ----Resten af ​​koden udføres her----

Konklusion

Dette var en hurtig oversigt over brugen af ​​java catch multiple exceptions-blok. Som en udfordring kan du prøve at udskrive den overordnede og den underordnede undtagelse i samme blok. Du opmuntres til at lære og øve dig for at vokse. Skål og god læring!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION