Web API 2.0 Exception Handling

Viewed 1683

I am using Web API 2.0 to create my own project. My Api contain ability to Add , Get and book product.

I Want to handle exception but there is some issue I little bit confused.

I have a controller: ProdctController with action method AddProdct.

   [Route("~/CKService.svc/author/add")]
    [HttpPost]
    public IHttpActionResult AddProduct(ProductRequest request)
    {
        ProductManager.AddProduct(request.ProductId, request.ProductName, 
        request.Price);

        return Ok(new AddProductResponse()
        {
            Status = AddProductStatus.Success
        };)
    }

Now, if the product already exists, so the data access layer will throw DuplicateKeyException

I want to handle this excpetion and return response like this:

  return Ok(new AddProductResponse()
    {
        Status = AddProductStatus.AlreadyExists
    };)
  1. Is this reasonable to return HTTP status code 200?
  2. How can I do this without add catch DuplicateKeyException to my controller because i think this is not the right way.

Thanks

2 Answers
Related