如何使用 visual studio 2019 在 .net core 3.1 编写的 azure 函数的 catch 块中捕获状态代码

How to capture status code in catch block of an azure function written .net core 3.1 using visual studio 2019

我正在使用 Visual Studio 2019 开发用 .NET CORE 3.1 编写的 azure 函数。我有一个 catch 块,如下所示

catch (Exception ex)
{
    log.LogError(ex, "Error: " + ex.Message + "");
    var errormodel = new { isError = true, Message = ex.Message, errorInnerException = ex.InnerException, stackTrace = ex.StackTrace };
    return new ObjectResult(errormodel)
    {

    };
    throw ex;
}

我无法在此处捕获状态代码...知道如何在 catch 块中捕获状态代码吗?

您可以安装这个包:ServiceStack 5.10.4,然后在您的 catch 块中,您可以只使用 ToStatusCode() 方法。

代码如下:

        catch(Exception ex)
        {
            var x = ex.ToStatusCode();
            log.LogError(ex, "Error: " + ex.Message + ", Status Code:" + ex.ToStatusCode());
            
            var errormodel = new { isError = true, Message = ex.Message, errorInnerException = ex.InnerException, stackTrace = ex.StackTrace, StatusCode = ex.ToStatusCode() };
            return new ObjectResult(errormodel)
            {

            };
            throw ex;
        }