尝试在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);
}