我目前正在开发一个评分应用程序。当我编写的方法成功运行时,我想通知用户操作成功。然而,当我试图通过将方法放置在try/catch/finaly块中来实现这一点时,无论该方法是否成功运行,finally块都会被命中。
成功消息是一个可变字符串,所以这就是为什么它不在"中"在finally块中。
我有以下捕获/最终代码:
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
MessageBox.Show(Success);
}
因此,当该方法返回错误时,用户仍然会收到操作成功的消息。我该如何解决这个问题?
谢谢。
无论方法是否成功运行,finally块都会被命中。
是的,finally
块就是这样工作的。
将MessageBox.Show(Success)
移动到try
块的最后一行,并移除finally
块:
try
{
//do something that might throw....
MessageBox.Show(Success);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
则只有在没有抛出异常的情况下才会调用MessageBox.Show(Success)
。