
آموزش مدیریت خطا Exception Handling در سی شارپ
آموزش مدیریت خطا Exception Handling در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی مدیریت کردن خطاها در سی شارپ با استثناها است که با نام اصلی Error Handling in C# with Exceptions از شرکت Pluralsight منتشر شده است.
استثنا (Exception) و مدیریت استثنا (Exception Handling) چیست؟
در برنامه های ساخت شده با زبان برنامه نویسی سی شارپ یک Exception مشکلی است که در زمان اجرای برنامه اتفاق می افتد. یک Exception در روند انجام کاری که در شرایط خاص و یا استثنایی به وجود می آید رخ می دهد.

یکی از این موارد تقسیم به صفر است. با استفاده از Exception ها می توان روند اجرای برنامه را از یک قسمت به قسمت دیگر منتقل کرد.
مدیریت استثناها و یا همان Exception Handling با استفاده از چهار کلمه ی کلیدی انجام
می شود.
- try: با استفاده از کلمه ی کلیدی try می توان قسمتی از کد که مستعد ایجاد Exception می باشد را مشخص کرد. هر بلاک try با چندین بلاک catch کامل می شود.
- catch: با استفاده از دستور catch می توان یک Exception Handler را ایجاد کرد و اقدام به کنترل کردن یک Exception در زمان رخ دادن آن کرد.
- finally: با استفاده از finally می توان بخشی از کد را چه یک Exception رخ بدهد چه ندهد اجرا کرد. برای مثال، اگر اقدام به خواندن یک فایل کنید، چه یک Exception رخ بدهد چه ندهد باید آن فایل نهایتاً بسته بشود. کد مربوط به بستن فایل را در قسمت finally قرار می دهیم.
- throw: با استفاده از کلمه ی throw می توان یک Exception را می توان در جریان اجرای برنامه ایجاد کرد.
مدیریت خطا در C# و جلوگیری از اختلال در اجرای برنامه
مدیریت خطا یکی از بخشهای مهم توسعه نرمافزار است و به برنامه کمک میکند هنگام مواجهه با شرایط غیرمنتظره، رفتار مشخصی داشته باشد. در C#، بسیاری از خطاهای زمان اجرا از طریق Exception ها نمایش داده میشوند. این خطاها ممکن است در اثر ورودی نامعتبر، دسترسی ناموفق به منابع یا شرایطی ایجاد شوند که اجرای یک عملیات را غیرممکن میکنند. مدیریت صحیح این وضعیتها باعث میشود برنامه بتواند خطاها را تشخیص دهد، اطلاعات لازم را ثبت کند و در صورت امکان، روند اجرا را به شکل کنترلشده ادامه دهد.
مدیریت استثنا تنها به جلوگیری از متوقف شدن برنامه محدود نیست؛ بلکه به طراحی ساختاریافتهتر کد نیز کمک میکند. اگر خطاها بدون توجه به محل وقوع و نوع آنها مدیریت شوند، ممکن است مشکلات اصلی پنهان بمانند یا رفتار برنامه برای کاربر و توسعهدهنده قابل پیشبینی نباشد. به همین دلیل، شناخت شرایط مناسب برای مدیریت Exception و انتخاب واکنش متناسب با هر وضعیت اهمیت دارد. در این آموزش پیشرفته، مباحث مدیریت خطا در C# از اصول اولیه تا کار با استثناهای سفارشی و تست رفتار کد بررسی میشوند.
ساختار Exception ها و سلسلهمراتب خطاها در C#
در C#، Exception ها بر اساس یک سلسلهمراتب کلاسی تعریف شدهاند که امکان نمایش انواع مختلف خطاها را فراهم میکند. کلاس پایه Exception نقش مهمی در این ساختار دارد و بسیاری از استثناهای مشخص از آن مشتق میشوند. آشنایی با این سلسلهمراتب به برنامهنویسان کمک میکند نوع خطای رخداده را بهتر تشخیص دهند و در هنگام مدیریت آن، شرایط مناسب را در نظر بگیرند. انتخاب نوع استثنای درست و درک ارتباط میان کلاسها از اصول مهم طراحی کد قابل نگهداری در پروژههای C# است.
شناخت ساختار Exception ها همچنین در نوشتن بخشهای try و catch اهمیت دارد، زیرا ترتیب و نوع استثناهایی که مدیریت میشوند بر رفتار برنامه تأثیر میگذارد. اگر نوع استثنا بهدرستی بررسی نشود، ممکن است خطای موردنظر مدیریت نشود یا اطلاعات لازم برای عیبیابی از دست برود. در این دوره، سلسلهمراتب کلاسهای مربوط به Exception Handling در C# بررسی میشود تا با ساختار این سیستم آشنا شوید. این دانش به شما کمک میکند هنگام طراحی منطق مدیریت خطا، تصمیمهای دقیقتری بگیرید و واکنش برنامه به شرایط غیرمنتظره را بهتر کنترل کنید.
استفاده از try، catch و throw در C#
در C#، بلوکهای try و catch برای اجرای کدهایی به کار میروند که ممکن است Exception ایجاد کنند و مدیریت شرایط خطا را امکانپذیر میسازند. کد حساس در بخش try قرار میگیرد و در صورت وقوع استثنای متناسب، بخش catch میتواند واکنش موردنیاز را انجام دهد. این واکنش ممکن است شامل ثبت اطلاعات خطا، نمایش پیام مناسب یا اجرای منطق جایگزین باشد. استفاده درست از این ساختار کمک میکند مدیریت خطا از منطق اصلی برنامه تفکیک شود و رفتار نرمافزار در شرایط غیرمنتظره قابل کنترلتر باشد.
کلمه کلیدی throw برای ایجاد یا بازپرتاب یک Exception استفاده میشود. این قابلیت به برنامهنویس اجازه میدهد هنگامی که شرایط لازم برای ادامه یک عملیات برقرار نیست، خطایی را اعلام کند یا استثنای دریافتشده را برای مدیریت در سطح بالاتر ارسال کند. انتخاب محل مناسب برای پرتاب و مدیریت Exception اهمیت زیادی دارد، زیرا مدیریت زودهنگام یا نامناسب ممکن است اطلاعات مفید خطا را از بین ببرد. در این آموزش، عملیات Catch و Throw کردن Exception ها در کنار مباحث دیگر مدیریت خطا بررسی میشوند تا با نحوه کنترل جریان اجرای برنامه در زمان بروز استثنا آشنا شوید.
Exception های سفارشی و تست خودکار مدیریت خطا
در برخی برنامهها، استثناهای استاندارد .NET بهتنهایی برای بیان همه شرایط خطا کافی نیستند. در چنین مواردی میتوان Exception سفارشی تعریف کرد تا یک وضعیت مشخص در منطق برنامه به شکل روشنتری نمایش داده شود. این استثناها به توسعهدهنده اجازه میدهند خطاهای مرتبط با دامنه برنامه را از سایر خطاهای عمومی تفکیک کند و در صورت نیاز، اطلاعات مرتبط را در اختیار بخشهای دیگر نرمافزار قرار دهد. طراحی مناسب Exception های سفارشی به خوانایی کد و درک بهتر شرایط خطا کمک میکند.
پس از پیادهسازی منطق مدیریت خطا، لازم است رفتار برنامه در شرایطی که Exception ایجاد میشود نیز بررسی شود. تست خودکار میتواند مشخص کند که آیا عملیات موردنظر در شرایط تعریفشده استثنای مناسب را ایجاد میکند و آیا کد، خطا را مطابق انتظار مدیریت میکند یا خیر. در این آموزش، ساخت و استفاده از Exception های سفارشی در کنار نوشتن Automated Test برای کدهایی که Exception ایجاد میکنند بررسی میشود. این مباحث برای توسعهدهندگان C# که میخواهند مدیریت خطا را بهصورت اصولی در برنامههای خود پیادهسازی و ارزیابی کنند، مفید است.
سرفصل مطالب آموزش ویدئویی مدیریت خطاها در سی شارپ با Exception Handling
فصل اول: مقدمه
- مقدمه
فصل دوم: اهمیت مدیریت خطاها Error Handling
- مقدمه
- معرفی بسته ی آموزشی
- چرا باید خطاها هندل بشوند؟
- انجام عملیات Error Handling با استفاده از مکانیزم Error Code ها
- چرا باید از Exception ها استفاده کنیم؟
- یک Exception چیست؟
- جمع بندی
فصل سوم: بررسی سلسله مراتب کلاس های مربوط به Exception Handling در سی شارپ
- مقدمه
- یک Exception نمایانگر چیست؟
- بررسی سلسله مراتب کلاس Exception
- بررسی کلاس پایه System.Exception
- بررسی توابع سازنده مختلف کلاس System.Exception
- نکات استفاده از System.ApplicationException
- بررسی Exception های معمول
- جمع بندی
فصل چهارم: شروع به کار با Exception ها
- مقدمه
- بررسی Exception Handling
- معرفی دستور Try
- بررسی برنامه ی مثال
- ایجاد کردن یک Exception
- بررسی Stack Trace
- ایجاد کردن و Throw کردن یک Exception
- شروع به کار با عملیات Catch
- بهترین روش های Exception Handling
- جمع بندی
فصل پنجم: انجام عملیات Catch و Throw کردن Exception ها
- مقدمه
- انجام عملیات Throw کردن Exception ها از Expression ها
- استفاده از دستورات Catch های متفاوت و متنوع
- معرفی دستور Finally
- انجام عملیات Rethrow کردن یک Exception و حفظ کردن Stack Trace
- انجام عملیات Catch و Wrap کردن Exception ها
- استفاده از Exception Filter ها
- پیاده سازی Global Exception Handler
- جمع بندی
فصل ششم: ساختن و استفاده کردن از Exception های سفارشی
- مقدمه
- معرفی Custom Exception ها
- پیاده سازی CalculationException
- پیاده سازی CalculationOperationNotSupportedException
- استفاده از Custom Exception ها
- جمع بندی
فصل هفتم: نوشتن Automated Testing برای کدهایی که Exception ایجاد می کنند
- مقدمه
- تست کردن Exception ها با MSTest
- تست کردن Exception ها با NUnit
- تست کردن Exception ها با xUnit.net
- جمع بندی







