ASP.NET Core RC2 Web API から HTTP 500 を返すにはどうすればいいですか? 質問する

ASP.NET Core RC2 Web API から HTTP 500 を返すにはどうすればいいですか? 質問する

RC1 では、次のようにしていました。

[HttpPost]
public IActionResult Post([FromBody]string something)
{    
    try{
        // ...
    }
    catch(Exception e)
    {
         return new HttpStatusCodeResult((int)HttpStatusCode.InternalServerError);
    }
}

RC2 では、はもう存在せずHttpStatusCodeResult、500 タイプの IActionResult を返すことができるものは見つかりませんでした。

私が尋ねていることに対して、アプローチは完全に異なるのでしょうか?Controllerコード内で try-catch はもう使用しないのでしょうか? フレームワークが API 呼び出し元に汎用の 500 例外をスローするようにするだけでしょうか? 開発の場合、正確な例外スタックを確認するにはどうすればよいでしょうか?

ベストアンサー1

私が見たところ、ControllerBaseクラス内にヘルパー メソッドがあります。次のStatusCodeメソッドを使用するだけです:

[HttpPost]
public IActionResult Post([FromBody] string something)
{    
    //...
    try
    {
        DoSomething();
    }
    catch(Exception e)
    {
         LogException(e);
         return StatusCode(500);
    }
}

StatusCode(int statusCode, object value)コンテンツをネゴシエートするオーバーロードを使用することもできます。

おすすめ記事