



اگه میخوای موارد زیر از جاوا رو بدونی جلسه بیست و نهم رو دانلود کن
Exceptions (استثناها)
علت های رخ دادن Exceptions (استثناها)
Checked exceptions
Unchecked exceptions
Errors ( خطاها)
برخی از متدهای کلاس Exception
کنترل و مدیریت استثناها
try – catch
Blocks ( استفاده از چند بلوک catch )
کلمات کلیدی Throws/Throw
بلوکFinally
ایجاد استثنا برای کاربر
روش تولید استثنا
سلسله مراتب استثناها
تفاوت میان کلمات کلیدی Throw و Throws
تمامی مفاهیم با مثال ساده توضیح داده شده است
به Exception در فارسی استثنا می گویند.
Exception (استثنا) چیست؟
یک exception در برنامه نویسی مشکلی است که در طول اجرای یک برنامه رخ می دهد.هنگامی که یک استثنا یا اکسپشن (exception) رخ می دهد ، جریان طبیعی برنامه مختل و برنامه بصورت غیر طبیعی خاتمه می یابد.
در کل و به زبان ساده به خطاهای قابل کنترل و تصحیحی که هنگام اجرای برنامه رخ می دهد و باعث توقف جریان طبیعی برنامه می شود Exception (استثنا) می گوییم.
شما شاید با مفهوم استثنا تازه دارید آشنا می شوید اما احتمالا حداقل یکبار هنگام اجرای برنامه با خطاهای زیر برخورد کرده اید!!!!
.png)
همه این تصاویر بالا گویای رخ دادن استثنا هنگام اجرای برنامه جاوا در Eclipseهستش که به این خطاها Exception (استثنا) می گوییم.
خب جاوا برای کنترل این Exceptions (استثناها) ابزارهایی را پیش بینی کرده است!!
برخی از Exceptions (استثناها) خیلی معروف هستند از بس که اتفاق می افتند و برخی هم کمتر معروف اند:
مثلا:
• Exceptions (استثناهای) زیر مربوط به خطاهایی است که در عملیات ریاضی احتمال دارد دهند:
مثلا اگر یک عدد را بر صفر تقسیم کنیم جواب مبهم است،در برنامه نویسی نیز اگر یک عدد را بر صفر تقیسم کنیم Exception (استثنا) زیر اتفاق می افتد.
.png)
• Exception (استثنا) زیر مربوط به اندیس های خانه آرایه می باشد،وقتی که خانه آرایه ای با اندیس یا شماره ای بیشتر تعداد خانه های آرایه یا طول آرایه صدا می زنیم.
.png)
• اگر آرایه ای را صدا بزنیم که مقدار عناصر درون آن پوچ یا null باشد Exception (استثنا) زیر رخ می دهد:
.png)
ما Exceptions (استثناهای) زیادی در جاوا داریم و قصد نداریم به معرفی انواع استثناها در جاوا بپردازیم و هدف از مثالهای بالا اشنایی و درک بهتر 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; public class Test { public static void main(String[] args) { |
• خط سبز رنگ استثنای زمان کامپایل (compile time exceptions) رخ می دهد.
.png)
• اگر شما کد بالا را اجرا کنید با خطای زیر برخورد میکنید:
.png)
کامپایلر برای محکم کاری میگه باید این استثنا را مدیریت و کنترل کنید که اگر هم فایلی در کامپیوتر وجود نداشت روند اجرای طبیعی برنامه متوقف نشود.
مثال کلاس 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) { } |
خروجی:اگر برنامه را اجرا کنید با استثنای زیر برخورد می کنید.
Exception in thread "main" java.lang.ArrayindexOutOfBoundsException: 5 |
توضیحات:
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 شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 10 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی می باشد
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |


![مشاهده جزییات و سرفصل های دوره Spring Batch [اینجا کلیک کنید]](https://dl.javapro.ir/spring_batch/springbatch_pop.png)


![مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو [کلیک کنید]](https://dl.javapro.ir/image/marketing/banerday1403springboot.png)
























.png)
-min.png)
-min.png)
-min.png)


-min.png)









-min.png)

.jpg)