КАК ЗАСТАВИТЬ C++ ПРОВЕРЯТЬ ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ
Прежде чем ваши программы могут обнаружить и отреагировать на исключительную ситуацию, вам следует использовать оператор C++ try для разрешения обнаружения исключительной ситуации. Например, следующий оператор try разрешает обнаружение исключительной ситуации для вызова функции file_соpy:
try
{
file_copy("SOURCE.ТХТ", "TARGET.ТХТ") ;
};
Сразу же за оператором try ваша программа должна разместить один или несколько операторов catch, чтобы определить, какая исключительная ситуация имела место (если она вообще была):
try
{
file_copy("SOURCE.ТХТ", "TARGET.ТХТ") ;
};
catch (file_open_error)
{
cerr "Ошибка открытия исходного или целевого файла" endl;
exit(1);
}
catch (file_read_error)
{
cerr "Ошибка чтения исходного файла" endl;
exit(1);
}
catch (file_write_error)
{
cerr "Ошибка записи целевого файла" endl;
exit(1);
}
Как видите, приведенный код проверяет возникновение исключительных ситуаций работы с файлами, определенных ранее. В данном случае независимо от типа ошибки код просто выводит сообщение и завершает программу. В идеале ваш код мог бы отреагировать и не так — возможно, попытаться исключить причину ошибки и повторить операцию. Если вызов функции прошел успешно и исключительная ситуация не выявлена, C++ просто игнорирует операторы catch.