Farzad Afi Logo

FarzadAfi

آموزش تخصصی برنامه نویسی

Java Exception Intro | معرفی اکسپشن در جاوا

📖توضیحات درس

🎥 این ویدیو قسمت شصتم از بوت‌کمپ رایگان جاواست. 📚 Exception Handling – معرفی استثناها (اکسپشن‌ها) و خطاها در جاوا در این جلسه وارد یکی از مفاهیم مهم و پایه‌ای در دنیای برنامه‌نویسی جاوا می‌شیم: اکسپشن‌ها و خطاها (Errors & Exceptions). می‌خوایم بفهمیم دقیقاً خطا چیه، استثناها چه فرقی با خطا دارن، چرا باید یادشون بگیریم و چطور می‌تونیم اون‌ها رو به‌صورت درست مدیریت (Handle) کنیم تا برنامه‌هامون پایدار و حرفه‌ای‌تر بشن. ⚙️ در این ویدیو بررسی می‌کنیم: 💡 معرفی Exception در جاوا – استثناها چی هستن و از کجا میان؟ 🎯 هدف از Exception Handling – چرا مدیریت استثنا مهمه و چطور از Crash شدن برنامه جلوگیری می‌کنه. 🚨 Error در جاوا – خطاهای سیستمی و غیرقابل‌کنترل رو می‌شناسیم. ⚖️ تفاوت بین Error و Exception – در چه موقعیت‌هایی با هرکدوم سروکار داریم. 🧩 Checked و Unchecked Exception – تفاوت‌ها و نقش هرکدوم در کدنویسی ایمن. 🔁 در پایان هم یه مرور کلی (Review) داریم تا مطالب به‌خوبی توی ذهنت تثبیت بشه. 💬 گروه پرسش و پاسخ تلگرام: @programmingByFarzadAfi 💬 گروه پرسش و پاسخ بله: @programming_by_farzadafi هر سوالی داشتی، می‌تونی توی گروه بپرسی؛ من یا مربی‌های گروه کمکت می‌کنیم 💬 🎯 بوت‌کمپ رایگان جاوا – آموزش پروژه‌محور برای یادگیری عمیق و ورود به بازار کار.
00:16:19🎯رایگان

📄جزوه

مفاهیم کلیدی

  • Exception

رویداد یا استثنایی که جریان عادی دستورالعمل‌های برنامه را مختل می‌کند. در جاوا، هر Exception یک شیء (Object) از کلاس Throwable است که اطلاعاتی درباره نوع خطا، پیام توصیفی و Stack Trace (محل دقیق وقوع خطا) را در خود دارد.

  • Error

نشان‌دهنده مشکلات جدی و غیرقابل بازیابی در سطح سیستم یا JVM است. این خطاها معمولاً به‌دلیل مسائل سخت‌افزاری یا کمبود منابع سیستمی رخ می‌دهند و برنامه نباید سعی در مدیریت آن‌ها داشته باشد.

  • Stack Trace

گزارشی است که جزئیات سلسله‌مراتب فراخوانی متدها تا لحظه وقوع خطا را نشان می‌دهد. این گزارش به برنامه‌نویس کمک می‌کند دقیقاً متوجه شود خطا در کدام خط و در کدام کلاس رخ داده است.

  • Checked Exception

استثناهایی هستند که توسط کامپایلر جاوا در زمان کامپایل بررسی می‌شوند. برنامه‌نویس مجبور است این استثناها را با استفاده از بلوک‌های مدیریت خطا هندل کند، یا در امضای متد با کلیدواژه throws اعلام نماید (مانند خطاهای مربوط به فایل یا دیتابیس).

  • Unchecked Exception

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

  • Throwable

کلاس ریشه برای تمام استثناها و خطاها در زبان جاوا است. هر چیزی که بتوان آن را به‌عنوان یک وضعیت غیرعادی در برنامه «پرتاب» کرد، باید فرزند این کلاس باشد.

موارد مصاحبه ای

  • تفاوت اصلی بین Exception و Error در جاوا چیست؟

Exceptionها برای شرایطی طراحی شده‌اند که برنامه پتانسیل بازیابی و ادامه فعالیت را دارد؛ بنابراین هندل کردن آن‌ها توصیه می‌شود. اما Errorها نشان‌دهنده مشکلات عمیق سیستمی هستند (مانند StackOverflowError یا OutOfMemoryError) و برنامه نباید سعی در مدیریت آن‌ها داشته باشد، زیرا سیستم ناپایدار شده است.

  • تفاوت بین Checked و Unchecked Exception چیست؟

استثناهای Checked در زمان کامپایل بررسی می‌شوند و مدیریت آن‌ها اجباری است (مانند IOException). استثناهای Unchecked یا Runtime در زمان کامپایل بررسی نمی‌شوند و معمولاً به‌دلیل باگ‌های منطقی برنامه‌نویس رخ می‌دهند (مانند NullPointerException).

  • چرا هندل کردن استثناها (Exception Handling) اهمیت دارد؟

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

  • اگر یک Exception رخ دهد و مدیریت نشود، چه اتفاقی برای خطوط بعدی کد می‌افتد؟

به‌محض وقوع یک استثنای مدیریت‌نشده، اجرای برنامه در همان نقطه متوقف می‌شود و هیچ‌یک از دستورات و خطوط بعدی اجرا نخواهند شد.

سناریو کاربردی

فرض کنید برنامه‌ای دارید که قرار است داده‌ای را از یک فایل بخواند و سپس محاسباتی روی آن انجام دهد.

۱. بدون مدیریت استثنا:

اگر فایل روی دیسک وجود نداشته باشد، برنامه با خطای FileNotFoundException روبه‌رو می‌شود و بلافاصله کرش می‌کند. در نتیجه، بخش محاسبات و سایر قسمت‌های برنامه هرگز اجرا نمی‌شوند.

۲. با مدیریت استثنا:

برنامه‌نویس پیش‌بینی می‌کند که ممکن است فایل وجود نداشته باشد؛ بنابراین آن را هندل می‌کند. در صورت نبود فایل، برنامه به‌جای بسته شدن، یک پیام مناسب به کاربر نمایش می‌دهد یا از یک فایل جایگزین استفاده می‌کند و به کار خود ادامه می‌دهد.

مثال‌های رایج دیگر:

  • تقسیم بر صفر (ArithmeticException):

در یک ماشین‌حساب، اگر کاربر عددی را بر صفر تقسیم کند، برنامه نباید بسته شود؛ بلکه باید پیغام «خطای ریاضی» نشان دهد.

  • دسترسی به آرایه:

اگر آرایه ۵ خانه دارد و شما بخواهید خانه دهم را بخوانید، ArrayIndexOutOfBoundsException رخ می‌دهد که باید برای جلوگیری از توقف برنامه مدیریت شود.

بیشتر بدانید

  • نکته سلسله مراتبی

در ساختار جاوا، Error و Exception هر دو فرزند کلاس Throwable هستند. همچنین RuntimeException خود زیرمجموعه Exception است و تمام استثناهای Unchecked از آن مشتق می‌شوند.

  • نکته منطقی

استثناهای Unchecked (مانند NullPointerException) معمولاً نشانه این هستند که کد شما نیاز به بازنگری منطقی دارد. برای مثال، قبل از صدا زدن یک متد روی یک شیء، باید مطمئن شوید که آن شیء null نیست.

  • نکته طراحی

هندل کردن Errorها (مانند مشکلات حافظه) ممکن است در برخی موارد امکان‌پذیر باشد، اما این کار به‌شدت نهی شده است؛ زیرا در آن لحظه سیستم ناپایدار است و ادامه کار برنامه می‌تواند منجر به نتایج فاجعه‌بارتری شود.