1. ホーム
  2. c#

[解決済み】ASP.NET Core RC2 Web ApiからHTTP 500を返すには?

2022-04-02 16:33:34

質問

RC1のころは、こうしていました。

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

RC2 では、もはや HttpStatusCodeResult そして、IActionResult の 500 タイプを返せるようなものは見当たりません。

私が質問していることに対して、今は全く違うアプローチなのでしょうか?でtry-catchすることはもうないのでしょうか? Controller のコードですか?フレームワークに一般的な500の例外を投げさせて、API呼び出し元に戻すだけですか?開発のために、私はどのように正確な例外スタックを見ることができますか?

解決方法は?

私の見るところでは、このメソッドには ControllerBase クラスがあります。ただ StatusCode メソッドを使用します。

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

また StatusCode(int statusCode, object value) のオーバーロードを使用すると、内容をネゴシエートすることもできます。