می‌توان خطاها را با استفاده از دستور try . catch اداره کرد. بدین صورت که کدی را که احتمال می‌دهید ایجاد خطا کند در داخل بلوک try قرار می‌دهید. بلوک catch هم شامل کدهایی است که وقتی اجرا می‌شوند که برنامه با خطا مواجه شود. تعریف ساده‌ی این دو بلوک به این صورت است که بلوک try سعی می‌کند که دستورات را اجرا کند و اگر در بین دستورات خطایی وجود داشته باشد برنامه دستورات مربوط به بخش catch را اجرا می‌کند. برنامه زیر نحوه استفاده از دستور try . catch را نمایش می‌دهد: در داخل بلوک try ، مقدار x را که است بر y که مقدار آن است تقسیم کرده‌ایم. نتیجه محاسبه به وجود آمدن خطای DivideByZeroException (عدد تقسیم بر صفر) است. از آنجاییکه در برنامه بالا خطایی به وجود آمده است کدهای داخل بلوک catch اجرا می‌شوند. بنابراین: می‌توانید از یک نوع استثناء مخصوص به یک خطا در داخل بلوک catch استفاده کنید، مثلا برای خطای تقسیم عدد بر صفر از DivideByZeroException به شکل زیر استفاده کنید: همچنین می‌توانید اطلاعات مربوط به یک استثنا را در داخل یک متغیر قرار داده و سپس آن را نمایش دهید: در کد بالا یک نمونه از کلاس DivideByZeroException را ایجاد کرده‌ایم ( error ) این کلاس دارای یک خاصیت به نام Message است که از آن برای نمایش اطلاعاتی در مورد استثناء استفاده می‌کنیم. همه کلاسهای استثناء توضیحاتی در مورد خطاها می‌دهند. در درسهای آینده در مورد خصوصیات استثناءها بیشتر توضیح می‌دهیم. اگر فکر می‌کنید که در بلوک try ممکن است با چندین خطا مواجه شوید می‌توانید از چندین بلوک catch استفاده نمایید ولی به یاد داشته باشید که برای هر کدام از آن خطاها از کلاس استثناء مربوط به هر یک استفاده کنید. از انجاییکه مقدار y به وسیله ورودی که از کاربر گرفته می‌شود، تعیین می‌شود، مقدار آن باید با توجه به مثال بالا غیر صفر باشد (عدد تقسیم بر صفر تعریف نشده است) اما یک مشکل وجود دارد. چون ممکن است که کاربر یک مقدار غیر عددی وارد کند (مثلا یک حرف) که در این صورت برنامه نمی‌تواند حرف را به عدد تبدیل کند و خطای نوع ( FormatException ) اتفاق می افتد. وقتی استثناء اتفاق افتاد بلوک catch مربوط به این خطا اجرا می‌شود و محاسبه خارج قسمت تقسیم x بر y نادیده گرفته می‌شود. حال فرض کنید شما می‌خواهید تمام خطاهای احتمالی که ممکن است در داخل بلوک try اتفاق می افتند را فهمیده و اداره کنید این کار چگونه امکانپذیر است؟ به راحتی و با استفاده از کلاس عمومی Exception می‌توانید این کار را انجام داد. هر کلاس استثناء در دات نت از این کلاس ارث بری می‌کند بنابراین شما می‌توانید هر نوع استثناءیی را در شیی از کلاس Exception ذخیره نمایید. با استفاده از این روش دیگر لازم نیست نگران اتفاق خطاهای احتمالی باشید چون بلوک catch برای هر گونه خطایی که در داخل بلوک try تشخیص داده شود پیغام مناسبی نشان می‌دهد. به این نکته توجه کنید که اگر بخواهید از کلاس پایه Exception همراه با سایر کلاسهای استثناء دیگر که از آن مشتق می‌شوند در برنامه استفاده کنید باید کلاس پایه Exception در آخرین بلوک catch قرار گیرد. اگر کلاس پایه Exception را در اولین بلوک catch قرار دهیم و خطایی در برنامه رخ دهد چون تمام کلاسهای استثناء از این کلاس مشتق می‌شوند در نتیجه اولین بلوک catch اجرا شده و سایر بلوک‌ها حتی با وجود اینکه خطای مورد نظر به آنها مربوط باشد اجرا نمی‌شوند. شما می‌توانید از عمگر is نیز به صورت زیر استفاده نمایید. بلوک catch از کلاس Exception برای به دام انداختن همه استثناءهایی که به وسیله برنامه به وجود می‌آید استفاده می‌کند. در داخل بلوک catch می‌توانید با استفاده از یک دستور if و کلمه کلیدی is نوع استثناء به وجود آمده را بیابید. مقالات به روز سی شارپ را از سایت پیگیری کنید