我有一个带有按钮ButtonAdd
的网络表单。我单击ButtonAdd
,然后调用事件处理程序ButtonAdd_Click()
。
此事件序列在ClassX
中中断,并具有如下所示的方法ReturnResults()
:
public DataTable ReturnResults(string ConnectionString, string Employee)
{
DataSet projects = new DataSet();
string sqlSelect = string.Format("usp_ReturnEmplData '{0}'", Employee);
try
{
nsbProject = SqlHelper.ExecuteDataset(ConnectionString, CommandType.Text, sqlSelect);
}
catch (SqlException e)
{
throw;
}
DataTable empTable = projects.Tables[0];
return empTable;
}
ReturnResults()
不是直接从Web表单中调用的,但我不知道是谁确切地调用了此方法。
因此,现在调试器命中throw;
,按F11
(“进入”)使我进入具有非托管错误的Web浏览器。
我认为,通过引发异常,调试器会将我带到名为ClassX.ReturnResults()
的上一类,依此类推,直到到达Webform。但这没有发生。一旦碰到throw;
,我就会在网络表单中收到未处理的错误,这正是我要避免的错误。
我的问题是:我如何才能看到所有呼叫(在ButtonAdd_Click()
到ReturnResults
之间,而无需调试按钮单击?
答案 0 :(得分:0)
正如Kenneth K提到的那样,查看异常对象中的堆栈跟踪将显示以前进行的所有调用,以到达进行该调用的位置。
我刚刚意识到的事情是,最后一个方法是唯一带有try-catch statement
的方法,这意味着throwing
或rethrowing
的异常不会起作用,因为上一个调用确实做了没有try-catch statement
。