如何返回InternalErrorResult?

时间:2019-05-31 22:14:47

标签: asp.net-core swagger

我将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()

1 个答案:

答案 0 :(得分:1)

您可以通过这种方式返回InternalServerError

catch (Exception e)
{
   var msg = MakeErrorMessage(e);
   return StatusCode(HttpStatusCode.InternalServerError, msg);
}

或只是重新引发异常

 catch (Exception e)
 {
       var msg = MakeErrorMessage(e);
       throw;
 }