我目前正在开发一个评分应用程序。当我编写的方法运行成功时,我想通知用户操作成功。但是,当我尝试通过将方法放在 try/catch/finally 块中来实现此目的时,无论该方法是否成功运行,都会命中 finally 块。
成功消息是一个变量字符串,所以这就是为什么它不在 finally 块中的 "" 中。
我有以下捕获/最终代码:
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
MessageBox.Show(Success);
}
所以当方法返回错误时,用户仍然会得到操作成功的消息。我该如何解决这个问题?
谢谢。
答案 0 :(得分:5)
无论方法是否成功运行,都会命中 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)
只会在没有抛出异常时被调用。