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)
コンテンツをネゴシエートするオーバーロードを使用することもできます。