2010-10-28 2 views
2

Есть ли способ в C# проверить, выполняется ли выполнение инструкции во время удаления стека исключений или нет?Тестирование раскрутки стека во время выполнения оператора

Thanks, Marcello.

Edit: Я имею в виду что-то вроде этого:

using (NewDbTransaction()) { 
    //do some DB stuff here 
} <-- here Dispose() of IDisposable is called 

void DbTransactionWrapper.Dispose() { 
    if (InException()) //is this possible??? 
    Rollback(); 
    else 
    Commit(); 
} 
+2

это называется try/catch -nately catch часть –

+1

Возможно, он имеет в виду, есть ли какая-то функция, которую вы можете вызвать, чтобы узнать, вызван ли код из блока catch/finally. – 2010-10-28 08:47:09

+0

Это вряд ли можно назвать регулярно используемыми функциями. Какую проблему ты пытаешься решить? –

ответ

0

Просто поймать и повторно выдать исключение.

Редактировать: Или вы имели в виду «Как определить исключение в блоке finally»? В этом случае вы можете просто установить флаг в блоке catch и прочитать его в блоке finally.

0

Класс stacktrace может дать вам некоторую помощь здесь, но вам нужно будет выполнить небольшую работу самостоятельно, исследуя стек. Я не думаю, что есть простой способ определить, что код вызывается из блока исключений.

Смежные вопросы