Я использовал C++ некоторое время, и я знаком с нормальной попыткой/выгодой. Однако я теперь оказываюсь в Windows, кодирующем в VisualStudio для разработки COM. Несколько частей кода используют вещи как:
TRY {
... do stuff
} CATCH_ALL(e) {
... issue a warning
}
END_CATCH_ALL;
Какой смысл их макросы? Какое преимущество они предлагают по встроенной попытке/выгоде?
Я попытался гуглить, это, но "пробует по сравнению с ПОПЫТКОЙ", твердо искать.
Это макрос MFC:
http://msdn.microsoft.com/en-us/library/t8dwzac0%28VS.71%29.aspx
На этой странице говорится, что это остаток из MFC 1.0 - используйте обычные исключения C ++ в новом коде:
версии MFC ниже 3.0 не поддерживали механизм исключений C ++. MFC предоставляет макросы для обработки исключений.
Это артефакт программирования Windows до тех пор, пока компиляторы не поддерживали команду try / catch или вообще не поддерживали ее.
Следует иметь в виду, что существует 3 различных типа исключений при программировании с помощью Visual C ++:
Механизмы исключений SEH и C ++ не должны смешиваться .
Эта статья на MSDN содержит более подробную информацию: