Мой вопрос довольно расплывчат: 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." );
}
Конечно, можно объявить «i» вне оператора try / catch (и это то, что я делаю). Но мне это не нравится - мне нравится объявлять переменные там, где они используются, а не раньше.
Но, может быть, я что-то здесь упускаю. Есть ли у вас элегантное решение?
Спасибо заранее!
Sylvain.
ДОБАВЛЕНО: myCall () - неясный вызов API - я понятия не имею, что он может выдать. Кроме того, я могу, конечно, добавить блок Try / Catch вокруг каждого вызова, но тогда мне лучше использовать коды возврата? Могу ли я добавить много шума вокруг важных строк кода?