Это неверная логика. Блок else не будет выполнен, если код входит в оператор if.
Если вам действительно нужно выполнить его даже в случае исключения, скопируйте код из блока else в блок finally.
РЕДАКТИРОВАТЬ: Итак, я думаю, что вы хотите это:
try
{
if()
{
try
{
//Code
}
catch(ComException e)
{
throw e;
}
}
}
finally
{
/*....instructions.....*/
}
Причина этого в том, что внутренняя попытка выполнит код, если оператор IF верен, и перехватит, а затем повторно сгенерирует исключение ComException, если оно встретит его. Код в блоке finally будет выполняться независимо от оператора IF или перехвата ComException.
Это лучше объясняет положение?
С извинениями дтб ; он ответил на это первым, я просто добавил объяснение.