2014-03-13 44 views
0

我正在使用ASP.NET WebAPI2。這裏是我的代碼:返回HttpResponseMessage的方法 - 我該如何返回異常,這可能嗎?

[HttpPost] 
    public HttpResponseMessage SaveNewPdf(HttpRequestMessage req) 
      { 
       var json = req.Content.ReadAsStringAsync().Result; 
       NewFile newFile = JsonConvert.DeserializeObject<NewFile>(json); 
       string error = string.Empty; 

       // check all the foreign key values to ensure they are valid 
       var isArticleCategoryValid = HelperClasses.ForeignKeyChecks.IsArticleCategoryValid(newFile.ArticleCategory); 
       var isDocumentTypeValid = HelperClasses.ForeignKeyChecks.IsDocumentTypeValid(newFile.DocumentType); 
       var isActionPublisherValid = HelperClasses.ForeignKeyChecks.IsActionPublisherValid(newFile.ActionPublisher); 
       var isRuleComplianceValid = HelperClasses.ForeignKeyChecks.IsRuleComplianceValid(newFile.RuleCompliance); 

       if (!isArticleCategoryValid) 
       { 
        error = "articleCategory in the JSON is not a valid Article Category"; 
        return new HttpResponseException(); 
       } 
    } 

我想要做一些像上面顯示的那樣 - 返回一個指示錯誤的異常。我知道我可以用任何我想要的狀態碼返回一個HttpResponseMessage,但我想返回一個異常。我知道HttpResponseException,但是這需要一個HttpResponseMessage,所以我回到了原點。是否可以返回一個異常?

回答

5

您需要拋出與下面一個正確創建錯誤響應的HttpResponseException:

throw new HttpResponseException(Request.CreateErrorResponse(
    HttpStatusCode.BadRequest, // Use the right status code 
    "OMG, I like totally FAILED.")); 
相關問題