کلاس Exception و انواع دیگر حالات استثنایی در جاوا :
استثناها یک قسمت مهم از برنامه نویسی در جاوا هستند. زمانی که یک خطا یا شرایط خاصی در برنامه رخ میدهد، استثناها به برنامه امکان میدهند که به طور مناسب با آن شرایط مقابله کند و عملکرد صحیح را حفظ کند. کلاس Exception، که یک کلاس پایه برای تمام استثناهای کامپایلی و اجرایی در جاوا است، تعریف شده است.
در جاوا، استثناها به دو دسته تقسیم میشوند: استثناهای کامپایلی و استثناهای اجرایی.
استثناهای کامپایلی در زمان کامپایل برنامه رخ میدهند و معمولاً به خاطر خطاهای دستوری در کد برنامه اتفاق میافتند. برخی از مثالهای استثناهای کامپایلی شامل نام تابع ناقص، تعریف نادرست متغیرها، استفاده نادرست از پراپرتیها و متدها و غیره است. استثناهای کامپایلی در زمان کامپایل برنامه تشخیص داده میشوند و برنامهنویس میتواند آنها را قبل از اجرای برنامه برطرف کند.
استثناهای اجرایی در زمان اجرای برنامه رخ میدهند و معمولاً به خاطر شرایط غیرمنتظره و ناپیشبینی شده در زمان اجرا اتفاق میافتند. برخی از مثالهای استثناهای اجرایی شامل دسترسی به فایلها یا دایرکتوریهای ناواپا، تقسیم بر صفر، خطاهای شبکه و غیره است. استثناهای اجرایی در زمان اجرای برنامه تشخیص داده میشوند و برنامهنویس میتواند با استفاده از بلاکهای try-catch آنها را مدیریت کند.
همچنین در جاوا، استثناها به دو دسته قابل بررسی و غیرقابل بررسی تقسیم میشوند. استثناهای قابل بررسی، که نیازمند بررسی و پیگیری توسط برنامهنویس هستند، مانند استثناهای نالپوینتر و استثناهای بررسی شده میباشند. استثناهای غیرقابل بررسی، که نمیتوان آنها را پیشبینی کرد و نیازمند پیگیری خاصی نیستند، مانند استثناهای حافظه ناکافی و استثناهای خطای دسترسی به فایل هستند.
برای مدیریت استثناها در جاوا، بلاک try-catch-finally به کار میرود. در این بلاک، برنامهنویس میتواند کدی را درون بلاک try قرار داده و در صورت بروز استثنا، با استفاده از بلاک catch، با آن استثنا مقابله کند و کد مناسب را اجرا کند. بلاک finally، که اختیاری است، بعد از بلاک catch اجرا میشود و معمولاً برای پایان دادن به منابعی مانند اتصال به پایگاه داده یا فایلهای باز استفاده میشود.
در کل، استثناها یک قسمت مهم از برنامهنویسی در جاوا هستند و از طریق کلاس Exception و بلاک try-catch-finally میتوان به آنها پاسخ داد. با مدیریت استثناها، برنامهها قادر خواهند بود به طور مناسب با خطاها و شرایط استثنایی مقابله کنند و عملکرد صحیح را حفظ کنند.