تفاوت کلیدی – استثنای علامتدار در مقابل علامتگذاری نشده در جاوا
یک استثنا خطای زمان اجرا است. دو نوع استثنا وجود دارد که به عنوان استثناهای چک شده و بدون علامت شناخته می شوند. هنگامی که یک استثنا علامت زده رخ می دهد، برنامه جاوا به یک منبع خارجی مانند یک فایل، دستگاه یا پایگاه داده متصل می شود. این استثناها توسط کامپایلر بررسی می شوند. برخی از نمونههای استثناهای علامتگذاری شده عبارتند از استثنا IO و استثنا FileNotFound. هنگامی که یک استثناء بدون علامت رخ می دهد، برنامه به هیچ منبع خارجی متصل نمی شود. این استثناها توسط کامپایلر بررسی نمی شوند. برخی از نمونههای استثناهای بدون علامت عبارتند از Arithmetic Exception و ArrayOutOfBound Exception.این مقاله در مورد تفاوت بین استثناء علامت دار و تیک نشده در جاوا بحث می کند. تفاوت کلیدی بین استثنای چک شده و علامت نشده در جاوا این است که یک استثنای علامت زده توسط کامپایلر بررسی می شود در حالی که یک استثنای تیک نشده توسط کامپایلر بررسی نمی شود.
استثناء علامت زده شده در جاوا چیست؟
وقتی یک استثنا علامت زده رخ می دهد، برنامه جاوا به یک منبع خارجی متصل می شود. این منبع می تواند دستگاهی مانند چاپگر باشد. این می تواند یک فایل یا یک پایگاه داده باشد. بنابراین، آن استثناها توسط کامپایلر بررسی می شوند. استثنا IO یک استثنا بررسی شده است. به دلیل خطا در دستگاه رخ می دهد. هنگامی که برنامه به فایلی دسترسی پیدا می کند که وجود ندارد، یک استثنا FileNotFound ایجاد می کند. یک برنامه کاربردی می تواند به یک پایگاه داده مانند MySQL، Oracle و غیره برای ذخیره داده ها متصل شود. اگر خطای مربوط به پایگاه داده رخ دهد، یک استثناء SQL خواهد بود. اینها نمونه هایی از استثناهای بررسی شده هستند. در همه اینها، برنامه به یک منبع بیرونی متصل است.در استثناهای علامت زده، رسیدگی به استثناء الزامی است. اگر مدیریت نشود، جریان صحیح برنامه خاتمه می یابد و فایل کلاس تولید نمی شود. خطا را می توان با استفاده از بلوک try, catch کنترل کرد.
شکل 01: بررسی موارد استثنا
طبق موارد فوق، FileReader داده ها را از فایل می خواند. فایل text1.txt در مکان مشخص شده وجود ندارد. کدی که می تواند استثنا بدهد در داخل بلوک try قرار می گیرد. پیام چاپ در داخل بلوک catch است. از آنجایی که هیچ فایلی به نام text1.txt وجود ندارد، این باعث ایجاد یک FileNotFoundException می شود. با استفاده از مدیریت استثنا، پیام روی صفحه چاپ می شود.
استثناهای بدون علامت در جاوا چیست؟
استثناهای بدون علامت توسط کامپایلر بررسی نمی شوند.برخلاف استثناهای علامت زده شده، با استثناهای علامت نخورده، برنامه جاوا به یک منبع بیرونی مانند فایل، پایگاه داده یا دستگاه متصل نیست. برخی از استثناهای رایج بدون علامت عبارتند از Arithmetic، ArrayOutOfBound و NullPointer Exceptions.
int a=10, b=0;
int div=a/b;
System.out.println(div);
این باعث یک استثنا حسابی به دلیل شیرجه زدن "a" با صفر می شود. به کد زیر مراجعه کنید.
شکل 02: رسیدگی به استثناهای حسابی
طبق برنامه فوق، متغیر a یک مقدار صحیح است. متغیر b 0 است. تقسیم این دو عدد تقسیم بر صفر است. بنابراین باعث استثنای حسابی خواهد شد. با استفاده از بلوک try-catch می توان آن را مدیریت کرد.عباراتی که می توانند باعث استثنا شوند در داخل بلوک try قرار می گیرند. پیامی که باید نمایش داده شود در بلوک catch است.
به کد زیر مراجعه کنید.
int array1={1, 2, 3, 4, 5};
System.out.println(array1[5]);
این یک استثنا ایجاد می کند. آرایه 1 آرایه ای با 5 عنصر است. شاخص شروع آرایه صفر است. چاپ مقدار شاخص 5th باعث استثنا می شود زیرا خارج از محدوده است. حداکثر شاخص آرایه1 4 است.
شکل 03: ArrayOutOfBound مدیریت استثنا
طبق برنامه فوق آرایه1 دارای 5 عنصر است. چاپ عنصر با شاخص 6 باعث ایجاد استثنا می شود زیرا خارج از محدوده است. حداکثر شاخصی که می توان در آرایه 1 ذخیره کرد 5 است. پیام خطا با اجرای بلوک catch چاپ می شود.
شباهت بین استثناهای علامت زده و تیک نشده در جاوا چیست
هر دو Exception علامت خورده و بدون علامت در جاوا انواع استثنایی در جاوا هستند
تفاوت بین استثناهای علامت زده و تیک نشده در جاوا چیست؟
چک شده در مقابل استثنای بدون علامت در جاوا |
|
یک استثنا بررسی شده یک خطای زمان اجرا است که توسط کامپایلر بررسی می شود. | یک استثنا بدون علامت یک خطای زمان اجرا است که توسط کامپایلر بررسی نمی شود. |
وقوع | |
هنگامی که یک استثنا علامت زده رخ می دهد، برنامه جاوا به یک منبع بیرونی مانند فایل، دستگاه یا پایگاه داده متصل می شود. | هنگامی که یک استثنا بدون علامت رخ می دهد، برنامه جاوا به یک منبع خارجی متصل نمی شود. |
نمونهها | |
IOException، FileNotFoundException، SQLException چند نمونه از استثناهای بررسی شده هستند. | استثنای حسابی، ArrayOutOfBoundException، NullPointerException نمونه هایی از استثناهای بدون علامت هستند. |
خلاصه - بررسی شده در مقابل استثنای علامت نخورده در جاوا
استثنا رویدادی است که اجرای جریان برنامه را قطع می کند. دو نوع استثنا وجود دارد. به آنها استثناهای چک شده و استثناهای بدون علامت می گویند. در این مقاله تفاوت بین یک استثنای علامت زده و استثنای علامتنخورده بحث شده است. تفاوت بین تیک دار و تیک نشده در جاوا این است که یک استثنای علامت زده شده توسط کامپایلر بررسی می شود در حالی که یک استثنا تیک نشده توسط کامپایلر بررسی نمی شود. از آنجایی که استثناها بر جریان صحیح اجرای برنامه تأثیر میگذارند، رسیدگی به آنها یک تمرین برنامهنویسی خوب است.