尝试在ASP.NET中处理捕获错误

尝试在ASP.NET中处理捕获错误,asp.net,error-handling,try-catch,Asp.net,Error Handling,Try Catch,我对试抓拦网有一个疑问 下面是我的代码 private void PopulateDDL() { try { if (my condition) { code } else { throw new Exception(ErrorMessage); }

我对试抓拦网有一个疑问

下面是我的代码

 private void PopulateDDL()
    {
        try
        {
            if (my condition)
            {
                code
            }
            else
            {
                throw new Exception(ErrorMessage);
            }
        }
        catch (Exception ex)
        {
            logerror(ex);
        }
    }
如果以下代码出错,将执行哪个Catch块 否则

发件人:

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

已定义的捕捉块:

catch (Exception ex)
{
    RaiseWebError(ex);
}
将首先为异常执行
抛出新异常(ErrorMessage)


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

您定义的唯一捕捉块?是否意味着有多个?其他CATCH块表示父方法,即从中调用此方法。如果
PopulateDLL()
方法中发生错误,将调用其CATCH块。如果错误在父方法中的某个位置,而不是
PopulateDLL()
,则将调用父方法的catch块。如果可能,也发布父方法。这将使我们能够更清楚地了解情况。
catch (Exception ex)
{
    RaiseWebError(ex);
}