我将Swagger与.Net Core API结合使用。 当API中有错误时,我想收到InternalServerError 但是,没有NotOK方法可以做到这一点。
当前我的基本控制器中有以下内容
using System;
using Microsoft.AspNetCore.Mvc;
namespace MyApi.Controllers
{
public class BaseController : Controller
{
public IActionResult RouteInterfaceMethod<TResponse>(Func<TResponse> function)
{
// try
// {
IActionResult res = null;
TResponse ret = function();
res = Ok(ret);
return res;
// }
// catch (Exception e)
// {
// var msg = MakeErrorMessage(e);
// return base.NotFound( msg);
// }
}
}
}
并且即将取消注释代码,是否可以使用NotFound()
答案 0 :(得分:1)
您可以通过这种方式返回InternalServerError
catch (Exception e)
{
var msg = MakeErrorMessage(e);
return StatusCode(HttpStatusCode.InternalServerError, msg);
}
或只是重新引发异常
catch (Exception e)
{
var msg = MakeErrorMessage(e);
throw;
}