دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه! دوره‌ای که می‌تونه مسیر شغلیت رو عوض کنه!
🎯 ثبت نام
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

مدیریت خطا در WCF

دوره های پیشنهادی

WCF – مدیریت خطا (Exception Handling)

در حین توسعه ی سرویس، برنامه نویس ممکن است با مشکلات و خطاهای پیشبینی نشده مواجه شود که این خطاها بایستی به روش صحیح به کلاینت نمایش داده (گزارش) شوند. خطاها که تحت عنوان exception نیز شناخته می شوند، معمولا با نوشتن ساختمان های try/catch مدیریت می شوند، اما از آنجایی که کلاینت هایی استفاده کنند از سرویس ممکن است از تکنولوژی های مختلف استفاده کنند، در WCF نمی توان خطاها را صرفا با try/catch اداره کرد.

در فریم ورک WCF برای این منظور می توان از Fault Contract استفاده کرد.

Fault Contract خطاهای رخ داده در یک سرویس را به صورت مستند (برای مشاهده) در اختیار کلاینت قرار می دهد. در زیر با ذکر مثالی ساده سعی می کنیم این مفهوم را بهتر تشریح کنیم.

ایجاد یک سرویس ماشین حساب

گام اول – یک سرویس ماشین حساب برای انجام عملیات تقسیم می نویسیم که در صورت لزوم خطاهای مربوطه را ایجاد (throw) می کند.

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Runtime.Serialization;

usingSystem.ServiceModel;

usingSystem.Text;

namespace Calculator

{

   // NOTE: You can use the "Rename" command on the "Refactor" menu to change

   // the interface name "IService1" in both code and config file together.

   [ServiceContract]

   public interface IService1

   {

      [OperationContract]

      int divide(int num1, int num2);

      // TODO: Add your service operations here

   }

}

کد فایل کلاس را در تصویر زیر مشاهده می کنید:

آموزش WCF

حال زمانی که سعی می کنیم 10 را بر صفر تقسیم کنیم، سرویس ماشین حساب خطا پرتاپ می کند.

آموزش WCF آموزش WCF

این خطا را می توان با بلوک try/catch مدیریت کرد.

آموزش WCF

حال زمانی که سعی می کنیم یک عدد صحیح را بر صفر تقسیم کنیم، بجای ایجاد خطا مقدار 10 را برمی گرداند چرا که با استفاده از ساختمان catch این exception را مدیریت کردیم.

آموزش WCF

گام دوم – در این مرحله با استفاده از شی FaultException اطلاعات خطا را از سرویس به کلاینت گزارش می دهیم.

public int Divide(int num1, int num2)

{

   //Do something

   throw new FaultException("Error while dividing number");

}

 
1395/05/13 1975 4
نظرات شما

نظرات خود را ثبت کنید...