CodeGym /وبلاگ جاوا /Random-FA /جاوا گرفتن استثناهای متعدد
John Squirrels
مرحله
San Francisco

جاوا گرفتن استثناهای متعدد

در گروه منتشر شد
قبل از یادگیری در مورد گرفتن استثناهای متعدد، باید با مدیریت اولیه استثنا در جاوا آشنا باشید. با حرکت رو به جلو، فرض می کنیم که شما با یک بلوک try and catch در جاوا آشنا هستید.

چرا به چند بلوک catch در جاوا نیاز داریم؟

چند بلوک catch در جاوا برای رسیدگی به انواع مختلف استثناها استفاده می شود. قبل از راه‌اندازی جاوا 7، برای گرفتن یک استثنا خاص به یک بلوک catch خاص نیاز داشتیم. این امر بلوک هایی از کد اضافی را ایجاد کرد و از این رو منجر به یک رویکرد ناکارآمد شد. به مثال زیر نگاهی بیندازید تا شاهد استثناهای گرفتار شده باشید. از بلوک‌های catch جداگانه برای انواع مختلف استثنا استفاده می‌کند.

مثال با استفاده از بلوک‌های Catch جداگانه

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

خروجی

کل رنگ ها در یک طیف عبارتند از: [7، 6، 5، 4، 3، 2، 1] Exception مواجه شده با java.lang.ArithmeticException: / با صفر ---- بقیه کدها در اینجا اجرا می شوند----
همانطور که می بینید، در مثال بالا، یک بلوک متفاوت با پرتاب یک استثنا اجرا می شود. راه کارآمدتری برای گرفتن چندین استثنا با استفاده از یک بلوک کد برای گرفتن استثناهای انواع مختلف وجود دارد. به مثال زیر دقت کنید.

مثال استفاده از Multiple Catch Block در جاوا

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

خروجی

می‌توانید خط 13 را برای چاپ به استثنای انواع دیگر لغو نظر کنید.
کل رنگ ها در یک طیف عبارتند از: [7، 6، 5، 4، 3، 2، 1] Exception مواجه شده با java.lang.ArithmeticException: / با صفر ---- بقیه کدها در اینجا اجرا می شوند----

نتیجه

این یک نمای کلی از استفاده از بلوک استثناهای چندگانه catch java بود. به عنوان یک چالش، سعی کنید استثنای والد و فرزند را در یک بلوک چاپ کنید. شما تشویق می شوید که یاد بگیرید و تمرین کنید تا رشد کنید. به سلامتی و یادگیری شاد!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION