কম্পিউটার

কিভাবে আমরা C#ASP.NET WebAPI তে আন-হ্যান্ডেল করা ব্যতিক্রমগুলি পরিচালনা করার জন্য একটি ব্যতিক্রম ফিল্টার তৈরি করতে পারি?


একটি ব্যতিক্রম ফিল্টার কার্যকর করা হয় যখন একটি কন্ট্রোলার পদ্ধতি এমন কোনো unhandleddexception নিক্ষেপ করে যা HttpResponseException ব্যতিক্রম নয়। TheHttpResponseException প্রকার একটি বিশেষ ক্ষেত্রে, কারণ এটি বিশেষভাবে একটি HTTP প্রতিক্রিয়া ফেরত দেওয়ার জন্য ডিজাইন করা হয়েছে৷

ব্যতিক্রম ফিল্টারগুলি System.Web.Http.Filters.IExceptionFilter ইন্টারফেস প্রয়োগ করে৷ একটি ব্যতিক্রম ফিল্টার লেখার সহজ উপায় হল theSystem.Web.Http.Filters.ExceptionFilterAttribute ক্লাস থেকে নেওয়া এবং TheOnException পদ্ধতিকে ওভাররাইড করা৷

নীচে একটি ফিল্টার রয়েছে যা NotFiniteNumberException ব্যতিক্রমগুলিকে HTTP স্থিতি কোডে রূপান্তরিত করে 416, অনুরোধকৃত পরিসর সন্তুষ্ট নয় .

ExceptionFilterAttribute

উদাহরণ

using System;
using System.Net;
using System.Net.Http;
using System.Web.Http.Filters;
namespace DemoWebApplication.Controllers{
   public class ExceptionAttribute : ExceptionFilterAttribute{
      public override void OnException(HttpActionExecutedContext context){
         if (context.Exception is NotFiniteNumberException){
            context.Response = new HttpResponseMessage(HttpStatusCode.RequestedRangeNotSatisfiable);
         }
      }
   }
}

কন্ট্রোলার অ্যাকশন মেথড

উদাহরণ

using DemoWebApplication.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   [Exception]
   public class StudentController : ApiController{
      List<Student> students = new List<Student>{
         new Student{
            Id = 1,
            Name = "Mark"
         },
         new Student{
            Id = 2,
            Name = "John"
         }
      };
      public Student Get(int id){
         if(id <= 0){
            throw new NotFiniteNumberException("The Id is not valid");
         }
         var studentForId = students.FirstOrDefault(x => x.Id == id);
         return studentForId;
      }
   }
}

তাই আসুন কন্ট্রোলার অ্যাকশন পদ্ধতির জন্য id =0 পাস করে উপরের ExceptionAttribute পরীক্ষা করি।

কিভাবে আমরা C#ASP.NET WebAPI তে আন-হ্যান্ডেল করা ব্যতিক্রমগুলি পরিচালনা করার জন্য একটি ব্যতিক্রম ফিল্টার তৈরি করতে পারি?

ExceptionAttribute নিম্নলিখিত পন্থাগুলির যে কোনও দ্বারা নিবন্ধিত হতে পারে৷

  • ব্যতিক্রম ফিল্টার সহ অ্যাকশন সাজান।

[Exception]
   public IHttpActionResult Get(int id){
   Return Ok();
}
  • ব্যতিক্রম ফিল্টার সহ কন্ট্রোলার সাজান।

[Exception]
public class StudentController : ApiController{
   public IHttpActionResult Get(int id){
      Return Ok();
   }
}
  • WebApiConfig.cs.

    -এ বিশ্বব্যাপী ব্যতিক্রম নিবন্ধন করুন
public static class WebApiConfig{
   public static void Register(HttpConfiguration config){
      config.Filters.Add(new ExceptionAttribute());
   }
}

  1. কিভাবে আমরা C#ASP.NET WebAPI তে আন-হ্যান্ডেল করা ব্যতিক্রমগুলি পরিচালনা করার জন্য একটি ব্যতিক্রম ফিল্টার তৈরি করতে পারি?

  2. কিভাবে আমরা C# ASP.NET WebAPI তে অ্যাকশন পদ্ধতির জন্য উপনামের নাম নির্ধারণ করতে পারি?

  3. কিভাবে C# ASP.NET WebAPI এ CORS সমস্যা সমাধান করবেন?

  4. কিভাবে আমরা জাভাতে একটি JTable ফিল্টার করতে পারি?