کلاس Exception چیست؟
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
کلاس Exception چیست؟
یکی از مهمترین مباحث هر زبان برنامهنویسی، نحوه برخورد با خطاها و استثنایی است که در هنگام اجرا برنامه رخ میدهند.
فرض کنید که برنامهای را توسعه و به کارفرما خود تحویل دادهاید، پس قطعا به تمامی مواردی که ممکن است رخ دهد هم فکر کرده و آنها را با استفاده از دستوراتی مثل if و else if و else و while و TryParse و امثالهم کنترل کردهاید.
مثلا به این فکر کردهاید که اگر کاربر به جای کد ملی ۱۰ رقمی، نام و نام خانوادگی خود را وارد کرد، سیستم چه پیغامی به او نمایش دهد.
اما جالب است بدانید که در ۹۹% پروژههای کاربردی، باوجود آنکه برنامهنویس تاکید بر بدون باگ بودن برنامه دارد، اما باز هم در زمان اجرا و در محیطهای عملیاتی، استثناهایی رخ میدهد که شما به آن فکر نکرده و درنتیجه آن را کنترل نکردهاید.
به طور کلی در برنامهها ممکن است دو نوع اتفاق رخ دهد:
۱. ارور یا همان باگ:
که از دست برنامهنویس هیچ کاری بر نمیاد! به عنوان مثال یهو برق سرور قطع میشه!
۲. استثنا (مواردی که به آن فکر نشده)
مثلا یک قطعه کدی را نوشتهایم که از سرور تصویر یک مقاله را واکشی کند، اما درنظر نگرفتیم که اگه اون تصویر از طریق پنل ادمین یا هرجای دیگری پاک شده باشد، سیستم زمانی که نمیتواند در دیتابیس آن را پیدا کند، چه اتفاقی رخ دهد!
اگر مورد دوم را رعایت نکنیم، اولین مسئلهای که بوجود میآید، عدم رضایت کاربر از برنامه شماست!
همه ما تجربه نصب خیلی از نرمافزارها را بر روی تلفن همراه خود داشتهایم که پس از صرف زمان زیادی جهت دانلود و همچنین فرآیند نصب، مشاهده میکنیم که نرمافزار باگ داره و به محض باز شدن، بسته میشود! پس اولین ایراد این است که کاربران خود را از دست میدهیم.
اما مسئله دومی که ممکن است با رخ دادن استثناها اتفاق بیافتد، این است که احتمال لو رفتن کدهای برنامه شما وجود داشته که در اینصورت هلو را درون دهن هکرها (حتی هکرهای ناشی) قرار دادهاید.
جالب است بدانید که اکثر هکرها دقیقا همین کار را میکنند! یعنی تلاش میکنند تا در برنامه شما خطا ایجاد کنند تا سیستم ناخواسته کدهای شما را به نمایش بگذارد!
باتوجه به توضیحات بالا، رفته رفته مثل کلاس Exception در زبان سیشارپ، تمامی زبانها نیز کلاسی را برای خود تعریف کردند تا قابلیت کنترل خطاها و استثناها را به برنامهنویس ارائه دهد.
درنتیجه در زبان برنامهنویسی سیشارپ میتوانیم با استفاده از کلاس Exception، تا حد زیادی از بروز این استثناها جلوگیری کنیم.
کلاس Exception شامل کلی کلاس فرزند و متدهای فراوانی است که هرکدام از آنها برای جلوگیری از بروز یک استثنا بوجود آمدهاند، اما ما در این دسته بندی برای درک بهتر شما عزیزان، تنها ۴ کلاس فرزند از کلاس والد Exception را توضیح میدهیم:
۱. DivideByZeroException : خطای تقسیم یک عدد بر صفر
۲. NullReferenceException : خطای ارجاع مقدار null
۳. FormatException : خطای ورود نامعتبر مقدار
۴. IndexOutOfRangeException : خطای شماره index
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.