停止在 C# 中冒泡异常

本文关键字:异常 | 更新日期: 2023-09-27 18:32:15

我的代码是这样的

 private void GetShippingInstruction()
{
    try
    {
        string json = JsonConvert.SerializeObject(ds, Formatting.Indented);
        ShowResult(json);
    }
    catch (Exception ex)
    {
       //custom logic        
    }
}
 private void ShowResult(string json )
{
    try
    {
        Response.Write(json);
        Response.End();
    }
    catch 
    { 
       return;
        // do nothing for now
    }
}

如果 ShowResult 函数内发生任何错误,我想忽略该错误并继续。我已经尝试了一些事情,例如在捕获块中添加return。但它对我没有帮助,在执行 ShorResult() 的 catch 块后,它直接进入 GetShippingInstruction 的 Catch 块,我不想要。有什么办法解决这个问题吗?

示例代码:https://dotnetfiddle.net/Jbse21

我得到的错误是:{Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}

停止在 C# 中冒泡异常

当你调用 Response.Write 时 - 你打开你的响应 .. 当你在写作时发生错误时,你可能需要关闭它.. 请尝试以下操作:

private void ShowResult(string json)
{
    try
    {
         if (string.IsNullOrEmpty(json)) return; // no need to get an exception for that
         Response.Write(json);
    }
    catch 
    { 
    }
    finally
    {
        Response.End();
    }
}
是否有

可能在 GetShippingInstruction 的第一行抛出异常?

string json = JsonConvert.SerializeObject(ds, Formatting.Indented);

如果是这样,它将执行 GetShippingInstruction catch 块。