我有标准的try-catch-finally块:是否有一个很好的方法来定义catch块是否运行?
try
{
//Action
}
catch(Excteption e)
{
//Catch block
}
finally
{
// Action which would be run in case if catch block was not run
// Action which would be run anyway
}
我想知道是否有某种方式或知道catch块的内部代码是不运行,运行特定的代码在finally块中,请注意,我明白我可以创建一个布尔值来将它放到catch块以检测它的执行情况,但这似乎是一种难以管理的事情:)
请分享您的解决方案, 谢谢:)
编辑: 最后我用Jeroen提出的稍微修改过的版本:
Func<string> Action = null;
try
{
Action =() =>
{
//Action
return true;
};
}
catch(Exception e)
{
Action =() =>
{
//Catch block
return false
}
finally
{
if(Action())
//Action which would be run in case if catch block was not run
// Action which would be run anyway
}
谢谢!
_“我明白我可以在catch块中创建一个bool值”_否,它必须在 –
之外声明@TimSchmelter在我读取评论之前修复了一秒钟:) – Kiseki
如何移动//动作如果catch块没有运行到'try'块中,在'// Action'之后运行? –