ASP.net Web Apiで例外をスローするにはどうすればよいですか?
以下は私のコードです:
public Test GetTestId(string id)
{
Test test = _test.GetTest(id);
if (test == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
return test;
}
私は正しいことをしているとは思わない、クライアントがそれがHTTP 404
エラー?
それは絶対に大丈夫です。
または、さらに情報を提供したい場合(あなたが言うように、クライアントが通常の404と区別できるようにするため):
if (test == null)
{
throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound,
"this item does not exist"));
}
これにより、WebAPIエラー処理の理解が少し向上します。
http://blogs.msdn.com/b/youssefm/archive/2012/06/28/error-handling-in-asp-net-webapi.aspx
コードスニペットにあるものが機能するはずです。 testがnullで応答本文がない場合、サーバーは404 Not Foundをクライアントに送り返します。応答本文が必要な場合は、上記のブログ投稿で説明されているようにRequest.CreateErrorResponseを使用し、その応答をHttpResponseExceptionに渡すことを検討する必要があります。