Выражение перебрасывания (throw без assignment_expression) вызывает перебрасывание первоначально брошенного объекта.Поскольку исключение уже перехвачено в области, в которой происходит выражение rethrow, оно перебрасывается в следующий динамически включаемый блок try.Следовательно, он не может быть обработан блоками перехвата в области, в которой произошло выражение повторного вызова.
Учитывая вышесказанное, вы можете написать свой код следующим образом:
try
{
try
{
//...
}
catch(FormatException^ ex)
{
MessageBox::Show("FormatException Occured. Message: " + ex >Message);
throw;
}
catch(OverflowException^ ex)
{
MessageBox::Show("Overflow Occured. Message: " + ex->Message);
throw;
}
}
catch(Exception^ ex)
{
MessageBox::Show("TESTING");
}