Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何返回InternalErrorResult?_Asp.net Core_Swagger - Fatal编程技术网

Asp.net core 如何返回InternalErrorResult?

Asp.net core 如何返回InternalErrorResult?,asp.net-core,swagger,Asp.net Core,Swagger,我正在使用带有.Net核心API的Swagger。 当API中出现错误时,我希望收到InternalServerError 但是,没有NotOK方法可以做到这一点 目前,我的基本控制器中有以下内容 using System; using Microsoft.AspNetCore.Mvc; namespace MyApi.Controllers { public class BaseController : Controller { public IActionR

我正在使用带有.Net核心API的Swagger。 当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);
        //    }
        }
    }
}
使用系统;
使用Microsoft.AspNetCore.Mvc;
名称空间MyApi.Controllers
{
公共类BaseController:控制器
{
公共IActionResult路由接口方法(Func函数)
{
//试一试
//    {
IActionResult res=null;
t响应ret=函数();
res=正常(ret);
返回res;
//    }
//捕获(例外e)
//    {
//var msg=MakeErrorMessage(e);
//返回base.NotFound(msg);
//    }
}
}
}

我将要对代码进行取消注释,除了使用NotFound(),还有其他方法吗?

您可以用这种方法返回InternalServerError

catch (Exception e)
{
   var msg = MakeErrorMessage(e);
   return StatusCode(HttpStatusCode.InternalServerError, msg);
}
或者只是重新抛出一个异常

 catch (Exception e)
 {
       var msg = MakeErrorMessage(e);
       throw;
 }
我问了一个相关的问题~