ASP.NET中的Try-Catch错误处理

时间:2014-03-04 07:59:46

标签: asp.net error-handling try-catch

我对 Try-Catch 阻止有疑问。

以下是我的代码

 private void PopulateDDL()
    {
        try
        {
            if (my condition)
            {
                code
            }
            else
            {
                throw new Exception(ErrorMessage);
            }
        }
        catch (Exception ex)
        {
            logerror(ex);
        }
    }

如果以下代码出错,将执行哪个 Catch 块 其他

        {
            throw new Exception(ErrorMessage);
        }

1 个答案:

答案 0 :(得分:0)

来自MSDN

  

抛出异常时,公共语言运行库(CLR)看起来如此   用于处理此异常的catch语句。如果是目前的   执行方法不包含这样的catch块,CLR查看   调用当前方法的方法,依此类推   堆。如果未找到catch块,则CLR显示未处理   向用户发出异常消息并停止执行程序。

您定义的catch块:

catch (Exception ex)
{
    RaiseWebError(ex);
}

将首先执行异常throw new Exception(ErrorMessage);

如果RaiseWebError重新抛出异常,那么这将由在调用堆栈中找到的下一个try-catch块处理(即您引用的父方法)。但是如果RaiseWebError以某种方式处理异常(可能通过记录异常),则在第一次try-catch之后将继续执行。