دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • مرداد

جلسه ۴۲ : کار با استثناء ها (Exception) در زبان #C

  • دسته‌بندی‌ها :
جلسه ۴۲ : کار با استثناء ها (Exception) در زبان #C
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبل با کلاس FileInfo که برای کار با فایل ها بود ، آشنا شدید. در این بخش قصد داریم شما را با استثناء ها در زبان #C و کلاس پایه Exception  آشنا کنیم.

      در یک برنامه ممکن است خطایی در هنگام اجرای رخ دهد. هنگامی که یک خطا رخ می دهد، CLR یا کد برنامه، استثنائی را که حاوی اطلاعات لازم در مورد خطا است برمی گرداند. دو نوع استثناء در Net. وجود دارد، استثنائات ایجاد شده در هنگام اجرای برنامه و استثنائات ایجاد شده توسط CLR.

      #C برای هر استثنا شامل کلاس های ساخته شده ای است. تمام کلاس های استثناء به طور مستقیم یا غیر مستقیم از کلاس Exception حاصل می شوند.

      دو کلاس اصلی برای استثنا وجود دارد – SystemException و ApplicationException.

      SystemException یک کلاس پایه برای تمام خطاهای تولید شده CLR است در حالی که ApplicationException به عنوان یک کلاس پایه برای همه استثنائات مربوط به برنامه عمل می کند که می خواهید بر نقض قوانین برنامه افزوده شود.

      شکل زیر سلسله مراتب برخی از کلاس های استثناء در Net. است:

      نمودار ارتباط استثناء ها

      نمودار ارتباط استثناء ها

       

      همانطور که در شکل بالا می بینید، کلاس SystemException یک کلاس پایه برای تمام استثناءهایی است که می توانند در طول اجرای برنامه رخ دهند. هیچ کلاس دیگری به طور پیش فرض به کلاس ApplicationException ربطی ندارد، زیرا شما به عنوان یک برنامه نویس باید این کلاس را ایجاد کنید تا طبق قوانین برنامه خود کلاسهای اجرایی خود را نیز ایجاد کنید.

      زمانی که بخواهیم از مقادیر شی ای که خالی است استفاده کنیم NullReferenceException در حالت اشکال زدایی Visual Studio برگشت داده می شود، همانند شکل زیر :

      استثناء

      استثناء

       

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

      جدول زیر فهرست کلاس های Exception مهم موجود در Net. را لیست می کند.

      توضیحاتException
      هنگامی رخ میدهد که آرگومانی به یک متدی ارسال شود که نامعتبر استArgumentException
      هنگامی رخ میدهد که آرگومان مقدار Null را به متد ارسال می کند.ArgumentNullException
      هنگامی رخ میدهد که مقدار یک آرگومان خارج از محدوده مقادیر معتبر است .ArgumentOutOfRangeException
      هنگامی رخ میدهد که مقدار عدد صحیح به صفر تقسیم می شود .DivideByZeroException
      هنگامی رخ میدهد که یک فایل فیزیکی در مکان مشخص شده وجود نداشته باشد.FileNotFoundException
      هنگامی رخ میدهد که یک مقدار در قالب مناسب برای تبدیل نوع با یک متد تبدیل مانند Parse نا معتبر است.FormatException
      هنگامی رخ میدهد که یک عنصر آرایه خارج از مرز پایین یا بالایی (lower or upper bounds) یک آرایه یا مجموعه است.IndexOutOfRangeException
      هنگامی رخ میدهد که فراخوانی یک متد در یک حالت خاص از شیء نامعتبر باشدInvalidOperationException
      هنگامی رخ میدهد که بخواهیم انواع ناسازگار را تبدیل نوع کنیم.InvalidCastException
      هنگامی رخ میدهد که کلید مشخص شده برای دسترسی به یک عنصر در مجموعه وجود نداشته باشد.KeyNotFoundException
      هنگامی رخ میدهد که یک متد یا عملیات پشتیبانی نشود.NotSupportedException
      هنگامی رخ میدهد که برنامه به شی ای خالی برمیخورد.NullReferenceException
      هنگامی رخ میدهد که عملیات ریاضی، casting یا تبدیل موجب سرریز شدن می شود.OverflowException
      هنگامی رخ میدهد زمانی که یک برنامه حافظه کافی برای اجرای کد ندارد.OutOfMemoryException
      هنگامی رخ میدهد که یک پشته در حافظه سرریز شود.StackOverflowException
      هنگامی رخ میدهد فاصله زمانی اختصاص داده شده به یک عملیات منقضی شده باشد.TimeoutException

       

      ویژگیهای مهم کلاس پایه Exception :

      هر کلاس exception در Net. به کلاس پایه Exception مرتبط است. کلاس پایه Exception شامل ویژگی های مهم زیر است که می توانید از آنها برای کسب اطلاعاتی در مورد استثناء استفاده کنید.

      توضیحاتپراپرتی
      جزئیات مربوط به علت استثناء را ارائه می دهد.Message
      اطلاعاتی مربوط به اینکه خطا در کجا اتفاق افتاده را ارائه می دهد.StackTrace
      اطلاعاتی مربوط به مجموعه ای از استثنائات که ممکن است رخ داده باشد را فراهم می کند.InnerException
      توسط این ویژگی می تواند آدرس Help را برای یک استثناء خاص نگه دارد.HelpLink
      این ویژگی می تواند داده های دلخواه را در عنصرهای تشکیل شده از جفت های کلید – مقدار (key-value pairs) نگهداری کند.Data
      نام متدی که استثناء در آن اتفاق افتاده را ارائه میدهد.TargetSite

       

      چند نکته مهم جهت بخاطر سپاردن :

      1. Exception یک کلاس پایه برای هر نوع کلاس استثناء در #C است.
      2. انواع استثناء : SystemException و ApplicationException.
      3. کلاس SystemException برای خطاهای زمان اجرا مربوط به CLR استفاده می شود.
      4. کلاس Exception شامل خواص مهم Message ، StackTrack، InnerException، data  و … برای کار با استثناء ها است.

       

      در این بخش با Exception در زبان #C آشنا شدید.

      در قسمت بعدی قصد داریم با نحوه کار با Exception ها در زبان #C را بررسی کنیم.

       

      QR:  جلسه ۴۲ : کار با استثناء ها (Exception) در زبان #C
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر