TechBord Logo
TechBord detail

استثنا (Exception) چیست؟

یک استثنا (مخفف "رویداد استثنایی") یک خطا یا رویداد غیرمنتظره است که در حین اجرای برنامه (Program) رخ می دهد. هنگامی که یک استثنا رخ می دهد، جریان برنامه را قطع می کند. اگر برنامه بتواند استثنا را مدیریت و پردازش کند، ممکن است به اجرا ادامه دهد. اگر یک استثنا مدیریت نشود، ممکن است برنامه مجبور به خروج شود.

چند زبان برنامه نویسی (Programming Language) استثناها را پشتیبانی می‌کنند، اگرچه به روش‌های مختلفی استفاده می‌شوند. به عنوان مثال، استثناها بخشی جدایی ناپذیر از زبان جاوا (Java) هستند و اغلب برای کنترل جریان یک برنامه هستند. جاوا شامل یک Exception کلاس (Class) است که دارای ده‌ها زیر کلاس است، مانند TimeoutException، UserException و IOException. زیر کلاس‌هایی مانند IOException حاوی استثنائات خاص تری مانند FileNotFoundException و CharacterCodingException هستند که می‌توانند اگر یک فایل (File) یافت نشد یا رمزگذاری کاراکتر (Character Encoding) یک رشته (String) شناسایی نشد، "پرتاب" شد.

زبان‌های دیگر فقط از استثناها استفاده می‌کنند. خطای زمان اجرا (Runtime Error) اساسی را بگیرید، مانند خطاهای تخصیص خطای حافظه (Memory) یا خطاهای سطح سیستم. به عنوان مثال، یک برنامه () ممکن است استثناء bad_alloc را زمانی که حافظه قابل تخصیص نباشد و system_error استثناء کند، ایجاد کند. هنگامی که سیستم عامل (Operating System) خطایی ایجاد می کند.

Exception Handling

یک برنامه کامپیوتری که به خوبی نوشته شده است، استثناها را بررسی می کند و آنها را به طور مناسب مدیریت می کند. این بدان معناست که توسعه دهنده (Developer) باید استثناهای احتمالی را بررسی کند و برای پردازش آنها کد منبع (Source Code) را بنویسد. اگر برنامه ای استثناها را به خوبی مدیریت کند، خطاهای غیرمنتظره را می توان بدون تصادف در (Crash) برنامه شناسایی و مدیریت کرد.

استثناها پس از وقوع "پرتاب" می شوند و توسط برخی کدهای دیگر "گرفتار" می شوند. برنامه. آنها را می توان به صراحت با استفاده از عبارت پرتاب یا به طور ضمنی در یک عبارت try پرتاب کرد. در زیر نمونه ای از "try / catch" نحو (Syntax) در جاوا آورده شده است. کد زیر سعی می کند بر صفر تقسیم کند، اما یک استثنا ArithmeticException ایجاد می کند و 0 را به عنوان نتیجه برمی گرداند.

 1. int a = 11;  2. int b = 0;  3. int result = 0;  4. سعی کنید {  5.   int c = a / b;  6.   result = c;  7. } catch(ArithmeticException ex) {  8.   result = 0;  9 } 10. نتیجه بازگشت؛

یک استثنا در خط 5 (زمانی که 11 بر 0 تقسیم می شود) ایجاد می شود، بنابراین بقیه دستور try (خط 6) اجرا نمی شود. در عوض، استثنا در خط 7 گرفته می شود و نتیجه 0 برگردانده می شود.

تعریف اصطلاح استثنا (Exception) توسط تک بورد

تعریف استثنا (Exception) در این صفحه یک تعریف پایه نگاشته شده توسط تک بورد است. اگر مایل به ارجاع به این صفحه یا استناد به این تعریف هستید، با شرط درج لینک به این صفحه می توانید از این محتوا استفاده کنید.

هدف تک بورد توضیح اصطلاحات کامپیوتری به روشی است که به راحتی قابل درک باشد. ما برای سادگی و دقت با هر تعریفی که منتشر می کنیم تلاش می کنیم. اگر بازخوردی درباره تعریف استثنا (Exception) دارید یا می‌خواهید یک اصطلاح فنی جدید پیشنهاد کنید، لطفاً با ما تماس بگیرید.

آیا می خواهید اصطلاحات فنی بیشتری یاد بگیرید؟ در خبرنامه روزانه یا هفتگی مشترک شوید و شرایط و آزمون های ویژه را در ایمیل خود تحویل بگیرید.