تشخيص نوع خطا توسط Catch

همانطور كه در قسمت قبل اشاره شد شما مي توانيد با استفاده از Try Catch‌ در مقابل خطاي احتمالي عكس العمل نشان دهيد. حالا به مثال زير دقت كنين:



در اين مثال كاربر شما بايد دو عدد را تايپ كرده و نرم افزار اين اعداد را كه در غالب رشته اي (string) از متد ReadLine كلاس Console ‌گرفته شده اند - و بعد با استفاده از متد Parse‌ به عدد تبديل گشته اند - را بر هم تقسيم كرده و نتيجه را به شما نشان مي دهد.
با توجه به كد بالا من مي توانم احتمال بروز دو نوع خطا را تشخيص دهم:
1. كاربر به جاي تايپ كردن يك عدد از رشته ها استفاده كند (مثلا بنويسد Ali)
2. كاربر يك عدد را بر 0 تقسيم نمائيد (‌در دات نت و بيشتر زبان هاي برنامه نويسي هيچ عددي را بر 0 نمي توان تقسيم كرد و در صورتيكه اين كار را انجام دهيم يك خطا از نوع DividedByZeroException پرتاب خواهد شد)


نكته اي كه وجود دارد اين است كه من مي خواهم در مقابل هريك از اين نوع هاي خطا عكس العمل مناسب خودش را نشان دهم. براي اينكه بتوانم اين كار را انجام دهم بايد از چندين قسمت Catch استفاده كنم و در هر قسمت يك نوع از خطا ها را كنترل كنم:



همانطور كه مي بينيد من در ابتدا خطاي نوع FormatException را كنترل مي كنم كه در مواقعي Raise مي شود كه شما يك رشته نا صحيح را با عدد تبديل كنين. مثالا سعي كنين حرف ABD را به عدد تبديل كنين.
در قسمت دوم من يك خطا از نوع DividedByZeroException را كنترل مي كنم كه در مواقعي ايجاد مي شود كه شما يك عدد را بر 0 تقسيم نمائيد. و در نهايت در سومین Catch هر نوع خطا ديگري كه در اين دو نوع قرار نگيرد را کنترل و یک متن عمومی را نمایش می دهد. در واقع شما می توانین با استفاده از چند قسمت Catch هر نوع خطای احتمالی را گرفته و عکس العمل مناسب در مقابل آن نمایش دهید.

به منظور دریافت متن اصلی خطا و اطلاعات دیگر خطای اصلی , شما می توانید در مقابل هر یک یک متغییر تعریف کرده و از اطلاعات آن استفاده نمائید.



بارگزاری مثال
ادامه دارد...