آموزش جاوا- قسمت 9 (try and catch)

آموزش جاوا- قسمت 9 (try and catch)

بحث آموزشی این قسمت، به همان اندازه که مختصر است، می‌تواند برای نوشتن پروژه‌های بزرگ و جدی مفید واقع شود. پس خیلی مختصر و مفید بحث try and catch را شروع میکنیم…
قبل از اینکه وارد بحث try and catch شویم، بهتر است کمی درباره exception صحبت کنیم. منشا و دلیل به وجود آمدن exceptionها، رخ دادن Error یا خطا در برنامه است. به عنوان مثال یکی از exceptionهای رایج در اجرای برنامه جاوا، ArrayIndexOutOfBounds است و هنگامی رخ می‌دهد که در برنامه بخواهید به اندیسی از آرایه دسترسی داشته باشید که اصلا وجود ندارد! (مثلا شما بخواهید به [4]arr دسترسی پیدا کنید درحالی که حداکثر تا [3]arr وجود داشته باشد.) یا به عنوان مثالی دیگر از exceptionها، ArithmeticError هنگامی رخ می‌دهد که یک عملیات محاسباتی غیرمجاز مانند تقسیم بر صفر انجام شود. تنوع و تعداد Exceptionهای جاوا خیلی بیشتر از این‌هاست که خوشبختانه  نیازی به دانستن و حفظ کردن همه آن‌ها نیست. چیزی که نیاز دارید این است که چگونه با exceptionها برخورد کنید، به خصوص زمانی که از ایجاد خطا در قطعه کد خود اطمینان ندارید. حال باید متوجه شده باشید که هدف استفاده از try and catch در جاوا چیست. نحوه استفاده از try and catch به این صورت است:

try {
    //Code here
  } catch (ExceptionHere name) {
        //Replace ExceptionHere with your exception and name with the name of your exception.
        //Code if exception "ExceptionHere" is thrown.
  }

و اما نحوه عملکرد آن به چه صورت است؟ برای اینکه بهتر به خاطر بسپارید، همانطور که از نامش پیداست، قطعه بلوکی که در قسمت try نوشته شده است، تمام سعی خود را برای اجرا شدن می‌کند! در صورتی که حین این تلاش، Exception نوشته شده در آرگومان catch ایجاد شود، کد نوشته شده در قسمت catch، اجرا می‌شود. در این قسمت از کد به عنوان مثال می‌توانید به کاربر اطلاع بدهید که چه خطایی ایجاد شده است.

خبر خوب این که برای Catch کردن exception نیاز به دانستن نام دقیق exception ندارید و می‌توانید به جای نوشتن نام دقیق آن، از خود Exception استفاده کنید.

تمرین:

در این تمرین انتظار داریم تا شما یک کد مشکل‌دار را catch کنید. برای این کار شما باید کد مشکل‌دار را داخل بلوک try گذاشته و کاری کنید تا در صورت ایجاد خطا جمله “Problem with code detected” چاپ شود. (راهنمایی: از ArrayIndexOutOfBoundsException یا خود Exception به عنوان نوع exception استفاده کنید)

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[10];
        System.out.println(arr[9001]);
    }
}

توصیه می‌کنیم قبل از انجام تمرین، یک بار کد بالا را اجرا کنید و پیغام exception در کنسول را ببینید تا پس از انجام تمرین و مقایسه نتیجه، قدر try and catch را بیشتر بدانید!

برای انجام تمرین‌ این مبحث می‌توانید از یک IDE آنلاین مثل tutorialspoint استفاده کنید.

پاسخ تمرین:

تمرین این مبحث بسیار ساده بود. اما برای اینکه از نتیجه کار خود اطمینان حاصل کنید، راه حل شما باید مشابه این باشد:

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[10];
        try {
            System.out.println(arr[9001]);
        } catch (ArrayIndexOutOfBoundsException ex) {
            System.out.println("Problem with code detected");
        }
    }
}

 

مبحث مهم این قسمت از آموزش جاوا به پایان رسید. شاید تا الان از اهمیت try and catch اطلاع نداشتید یا منطق آن را برای چگونگی استفاده از آن نمی‌دانستید. در این قسمت سعی شد تا بسیار مختصر و مفهومی و با زبانی ساده این بحث آموزش داده شود تا برای همیشه در خاطرتان باقی بماند.

 

تاریخچه آموزش جاوا به ترتیب:

قسمت اول آموزش جاوا (مقدمه)

قسمت دوم آموزش جاوا (Types and Variables)

قسمت سوم آموزش جاوا (دستورات شرطی)

قسمت چهارم آموزش جاوا (آرایه‌ها)

قسمت پنجم آموزش جاوا (حلقه‌ها)

قسمت ششم آموزش جاوا (توابع)

قسمت هفتم آموزش جاوا (اشیا)

قسمت هشتم آموزش جاوا (ارث‌بری)

قسمت نهم آموزش جاوا (try and catch)

قسمت دهم آموزش جاوا (کلاس‌های abstract)

قسمت یازدهم آموزش جاوا (Interfaces)

قسمت دوازدهم آموزش جاوا (مفهوم Generic)

قسمت سیزدهم آموزش جاوا (Networking)

قسمت چهاردهم آموزش جاوا (مفهوم نخ و رشته)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *