menusearch
javapro.ir

♨️ جلسه بیست و نهم - Exceptions (استثناها)

جستجو
سه شنبه ۲۳ مهر ۱۳۹۸ | ۱۵:۲۸:۴۱
۱۳۹۵/۱۱/۳ یکشنبه
(2)
(0)
♨️ جلسه بیست و نهم - Exceptions (استثناها)
♨️ جلسه بیست و نهم - Exceptions (استثناها)

اگه میخوای موارد زیر از جاوا رو بدونی جلسه بیست و نهم رو دانلود کن


Exceptions (استثناها)


علت های رخ دادن Exceptions (استثناها)


Checked exceptions


Unchecked exceptions


Errors ( خطاها)


برخی از متدهای کلاس Exception


کنترل و مدیریت استثناها


try – catch


Blocks ( استفاده از چند بلوک catch )


کلمات کلیدی Throws/Throw


بلوکFinally


ایجاد استثنا برای کاربر


روش تولید استثنا


سلسله مراتب استثناها


تفاوت میان کلمات کلیدی Throw و Throws


تمامی مفاهیم با مثال ساده توضیح داده شده است


به Exception در فارسی استثنا می گویند.


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

یک exception در برنامه نویسی مشکلی است که در طول اجرای یک برنامه رخ می دهد.هنگامی که یک استثنا یا اکسپشن (exception) رخ می دهد ، جریان طبیعی برنامه مختل و برنامه بصورت غیر طبیعی خاتمه می یابد.


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


شما شاید با مفهوم استثنا تازه دارید آشنا می شوید اما احتمالا حداقل یکبار هنگام اجرای برنامه با خطاهای زیر برخورد کرده اید!!!!

 

exception در جاوا

 

همه این تصاویر بالا گویای رخ دادن استثنا هنگام اجرای برنامه جاوا در Eclipseهستش که به این خطاها Exception (استثنا) می گوییم.
خب جاوا برای کنترل این Exceptions (استثناها) ابزارهایی را پیش بینی کرده است!!


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

 

آشنایی با انواع exception در جاو

 

•    Exception (استثنا) زیر مربوط به اندیس های خانه آرایه می باشد،وقتی که خانه آرایه ای با اندیس یا شماره ای بیشتر تعداد خانه های آرایه یا طول آرایه صدا می زنیم.

 

کنترل استثناها در زبان برنامه نویسی جاوا

 

•    اگر آرایه ای را صدا بزنیم که مقدار عناصر درون آن پوچ یا null  باشد Exception (استثنا) زیر رخ می دهد:

 

آشنایی با try catch در جاوا

 

ما Exceptions (استثناهای) زیادی در جاوا داریم و قصد نداریم به معرفی انواع استثناها در جاوا بپردازیم و هدف از مثالهای بالا اشنایی و درک بهتر Exceptions (استثناها) در جاواست.


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


علت های رخ دادن Exceptions (استثناها) :
یک استثنا به دلایل مختلفی ممکن است رخ دهد.در زیر برخی از حالاتی که در آن Exceptions (استثناها)  رخ میدهد آورده شده است:


•    وقتی که کاربر داده های نامعتبر و بی ربط وارد کند.

       مثلا متغیر ما از نوع رشته است اما کاربر یک عدد وارد می کند.


•    وقتی ما میخواهیم یک فایل را باز و بخوانیم اما آن فایل در سیستم وجود نداشته باشد. (در جلسات آینده کار با فایل را خواهیم آموخت)


•    Null یا پوچ بودن مقدار متغیرها


•    عملیات ریاضی که جواب منطقی ندارد مثل تقسیم عدد بر صفر


•    انتخاب اندیسی از آرایه که بیشتر از طول آرایه است


•    و.......


برخی از استثناها توسط کاربر یعنی کسی که از برنامه استفاده می کند رخ می دهد، برخی توسط خود برنامه نویسی که برنامه رو نوشته رخ می دهد و برخی دیگر توسط منابع فیزیکی رخ میدهد.


در کل Exceptions (استثناها)  را به سه دسته می توان تقسیم کرد،که با درک و فهمیدن آنها می توانید Exceptions (استثناها) برنامه خود را مدیریت و کنترل کنید.


1)    Checked exceptions :
استثناها و خطاهایی که زمان کامپایل برنامه اتفاق می افتد و استثنای زمان کامپایل (compile time exceptions) نامیده می شود. خب استثنای زمان کامپایل در جاوا دیگه خیلی مشخص هست خود برنامه Eclipse هنگام کدزنی با خطوط قرمز این خطاها را برای ما مشخص کرده و هشدار می دهد و برنامه نویس به سادگی نمی تواند از آن بگذرد و یک برنامه نویس باید این خطاها را کنترل کند.

 

مثالی که برای استثنای زمان کامپایل (compile time exceptions) می توان زد کلاس FileReader هستش که از طریق ان می توانید داده های درون یک فایل را بخوانید، خب امکان داره فایل مربوطه در کامپیوتر شما وجود نداشته باشد و احتمال رخ دادن Exception (استثنا)   FileNotfoundException وجود دارد، دیگه برای استثنای زمان کامپایل (compile time exceptions) رخ می دهد یعنی بدون اجرای برنامه ، به شما احتمال رخ دادن خطا هشدار داده خواهد شده و شما به عنوان یک برنامه نویس باید بتوانید این خطا را مدیریت کنید.

 

package javalike_Exception;

import java.io.File;
import java.io.FileReader;

public class Test {

    public static void main(String[] args) {
        File file = new File("E://file.txt");
        FileReader fr = new FileReader(file);
    }



•    خط سبز رنگ استثنای زمان کامپایل (compile time exceptions) رخ می دهد.

 

آموزش exception در زبان برنامه نویسی جاوا

 

•    اگر شما کد بالا را اجرا کنید با خطای زیر برخورد میکنید:

 

آشنایی با throw throws در جاوا

 

کامپایلر برای محکم کاری میگه باید این استثنا را مدیریت و کنترل کنید که اگر هم فایلی در کامپیوتر وجود نداشت روند اجرای طبیعی برنامه متوقف نشود.

 

مثال کلاس FileReader را کلا فراموش کنید چون ما هنوز کار با فایل رو شروع نکردیم و تنها گزینه مناسبی برای مثال زدن در مورد استثنای زمان کامپایل (compile time exceptions) بود که زدیم پس اصلا نگران مفاهیم این موضوع کار با فایل نشید چون در جلسه ای جداگانه در آینده قشنگ بررسیش می کنیم 😊

 

2)    Unchecked exceptions :
Exceptions (استثناهای) که در زمان اجرای برنامه اتفاق می افتند،  این استثناها ، استثناهای زمان اجرا (Runtime Exceptions) نامیده می شوند. از نمونه باگ های (اشکالات) برنامه نویسی که شامل این نوع استثناها می باشد می توان به خطاهای منطقی که در زمان اجرای برنامه رخ می دهد اشاره کرد.


نکته : به اشکالات و گیرهایی که در برنامه نویسی اتفاق می افتد باگ (bug) می گویند.


برای مثال ، اگر شما یک آرایه را با اندازه 5 در برنامه خود تعریف کرده باشید و قصد دارید عنصر خانه 6 آرایه را صدا بزنید برنامه دچار استثنا ArrayindexOutOfBoundsExceptionexception می شود.


مثال :

 

package javalike_Exception;

public class Test {

    public static void main(String[] args) {
        int num[] = { 1, 2, 3, 4 };
        System.out.println(num[5]);
    }

}


خروجی:اگر برنامه را اجرا کنید با استثنای زیر برخورد می کنید.

 

Exception in thread "main" java.lang.ArrayindexOutOfBoundsException: 5
at javalike_Exception.Test.main(Test.java:10)

 

توضیحات:

 

int num[] = { 1, 2, 3, 4 };


•    اندازه و تعداد خانه های آرایه 4 می باشد.

 

System.out.println(num[5]);


•    ما عنصر خانه پنجم آرایه را صدا زده ایم ، از آنجایی که اندازه آرایه ما 4 می باشد با استثنایی که در خروجی نمایش داده شده برخورد می کنیم.

 

3)    Errors ( خطاها):
همه اشکالات و گیرهایی که هنگام اجرای برنامه اتفاق می افتد استثنا (Exception) نیستند!!!! به طور کلی هر خطایی استثنا نیست!!!! در کل مشکلات و گیرهایی که خارج از کنترل کاربر یا برنامه نویس باشد استثنا (Exception) نیستند و به آنها خطا (Errors) می گوییم. مثل خطای stack overflow ، خطای حافظه (memory error) ، خطای سخت افزار (hardware error) ، خطای ماشین مجازی جاوا (JVM error) و......
پس فرق خطا با استثنا این است که استثناها در برنامه نویسی قابل کنترل و مدیریت هستند اما خطاها از کنترل برنامه نویس خارج هستند.

 Exception خود یک کلاس می باشد که در کتابخانه java.lang.Exception قرار دارد. کلاس  Exception فرزند کلاس Throwable  است ، دیگه جزییات رو براتون باز نمیکنم در همین حد بدانید کافی است.

 

 ...ادامه این جلسه آموزشی را می توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.



این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

آموزش آسان و ساده زبان برنامه نویسی جاوا
لینک دانلود

 

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
شرکت سازنده