我的问题很模糊: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 块,但是我会更好地使用返回码吗?然后我会在重要的代码行周围添加很多噪音吗?