我的问题很模糊:o)-但这里有一个例子:
当我编写C代码时,我能够在出现故障时记录计数器的值:
<...>
for ( int i = 0 ; i < n ; i++ )
if ( SUCCESS != myCall())
Log( "Failure, i = %d", i );
<...>
现在,使用异常,我得到:
try
{
<...>
for ( int i = 0 ; i < n ; i++ )
myCall();
<...>
}
catch ( Exception exception )
{
Log( "Failure ! Maybe in myCall() ? Don't know. i's value ? No clue." );
}
当然,可以在try/catch语句之外声明“i”(这就是我要做的)。但我不喜欢它-我喜欢在使用它们的地方声明变量,而不是以前。
但也许我在这里遗漏了什么。你有什么好办法吗?
提前谢谢!
西尔文。
添加:mycall()是一个模糊的API调用-我不知道它能抛出什么。当然,我也可以在每个调用周围添加一个try/catch块,但是我最好使用返回代码?然后我会在重要的代码行周围添加很多噪音吗?是的。
最佳答案
怎么样:
for(int i = 0; i < n; i++)
{
try
{
myCall();
}
catch(Exception e)
{
Log(String.Format("Problem with {0}", i));
}
}