【发布时间】:2025-12-07 14:25:02
【问题描述】:
我有一个从 db 填充数据集的方法,它看起来或多或少像这样:
private DataSet GetData(string query)
{
try
{
//do some stuff to populate dataset
return dataset;
}
catch (SqlException ex)
{
MessageBox.Show("There was a database error. Please contact administrator.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
LogExceptionToFile(ex); //to log whole exception stack trace, etc.
}
finally
{
//cleanup
}
}
//calling methods:
GetData(query);
OtherMethod1(); //this method shows message box of success
当我有那段代码以防出现异常时,我得到了用户友好的消息框,然后调用 OtherMethod1() 并显示成功消息框。如果GetData() 中有错误,我想停止。当我在我的消息框之后将throw; 添加到这个catch 块时,显示了另一个消息框,而不是引发了未处理的异常。如果我提供了友好的消息,我想避免显示第二个消息框。
【问题讨论】:
-
如果您在
GetData()方法中添加throw,则需要在该方法周围使用try/catch 来实际捕获异常。否则,您将需要一些变量来跟踪GetData中的成功/失败,然后根据是否有异常采取相应的行动。
标签: c# error-handling exception-handling