ورود

View Full Version : دلیل استفاده از استثناهای (خطاهای) زنجیره ای؟



kiani2012
یک شنبه 02 تیر 1398, 15:48 عصر
سلام دوستان
گفته میشه که برای اینکه خطاهای سطح پائین رو بپوشونیم ما استثناها را به صورت زنجیره ای handle میکنیم
1-آیا این تعبیر برای دلیل ایجاد استثناهای زنجیره ای درسته؟
2-منظور از استثناهای سطح پایین چیه؟ آیا منظور اینه که خطاهای ، ریزی که برای کاربر نهایی ممکنه نامفهوم و بی استفاده باشه را میخواهیم بپوشونیم؟
3- در کتاب آقای صدیقی یه مثالی برای اجرای تابع radical (a*b/c) ارائه شده که استثناهای "تقسیم بر صفر" و "جذر عدد منفی" توسط یه استثنای دیگه(استثنای سوم) پوشیده شده. سوال من اینه که آیا نمیشد تشخیص هر دو استثنا را در همون استثنای سوم می آوردیم و پیغام خودمون رو ارائه میدادیم؟ چه نیازی به تعریف جداگانه استثناهای اول و دوم بود؟

اگرلازمه کدهای برنامه رو قرار بدم؟

vahid-p
پنج شنبه 06 تیر 1398, 18:38 عصر
دقیقا متوجه سوالتون نشدم. اما استثناها دو نوع checked و unchecked هستند. استثناهای checked حتما باید توسط شما هندل بشن ولی استثناهای unchecked لزومی نداره، مثل همین مواردی که مثال زدید. مواردی مثل استثناهای "خطای تقسیم بر صفر" یا "شاخص آرایه در محدوده مجاز نباشه" و از این دست unchecked هستند و لازم نیست هندل کنید و برنامه کامپایل میشه و فرض بر اینه حواستون به اینا هست. اما اگر لازم بود کوچکترین خطاها رو حتما هندل کنیم، کد برنامه خیلی طولانی و ناخوانا میشد و اصلا کدنویسی جالبی نمیبود. اما استثناهای checked رو اگر هندل نکنید، برنامه کامپایل نمیشه.
باز اگر سوال رو متوجه نشدم، بتونید دقیقا جایی که ابهام داره رو بگید، شاید بتونم راهنمایی کنم.