Разделы презентаций


ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ

Содержание

1. прервать выполнение программы;2. возвратить значение ошибки;3. вывести сообщение об ошибке в поток cerr и вернуть вызывающей программе некоторое приемлемое значение, которое позволит ей продолжить работу

Слайды и текст этой презентации

Слайд 1ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ

ОБРАБОТКА  ИСКЛЮЧИТЕЛЬНЫХ  СИТУАЦИЙ

Слайд 2
1. прервать выполнение программы;
2. возвратить значение ошибки;
3. вывести сообщение об

ошибке в поток cerr и вернуть вызывающей программе некоторое приемлемое

значение, которое позволит ей продолжить работу
1. прервать выполнение программы;2. возвратить значение ошибки;3. вывести сообщение об ошибке в поток cerr и вернуть вызывающей

Слайд 3
Исключительная ситуация или исключение – это возникновение непредвиденного или аварийного

события, которое может порождаться некорректным использованием аппаратуры

Исключительная ситуация или исключение – это возникновение непредвиденного или аварийного события, которое может порождаться некорректным использованием аппаратуры

Слайд 4
Исключения позволяют логически разделить вычислительный процесс на две части:
обнаружение

аварийной ситуации;
обработка аварийной ситуации

Исключения позволяют логически разделить вычислительный процесс на две части: обнаружение аварийной ситуации; обработка аварийной ситуации

Слайд 5Общий механизм обработки исключений
Контролируемый блок – составной оператор, перед которым

написано ключевое слово try
Обработка исключения начинается с появления ошибки. Функция,

в которой она возникла, генерирует исключение. Для этого используется ключевое слово throw с параметром, определяющим вид исключения. Параметр может быть константой, переменной или объектом и используется для передачи информации об исключении его обработчику
Отыскивается соответствующий обработчик исключения и ему передается управление
Если обработчик исключения не найден, вызывается стандартная функция terminate, которая вызывает функцию abort, аварийно завершающую текущий процесс. Можно установить собственную функцию завершения процесса
Общий механизм обработки исключений 	Контролируемый блок – составной оператор, перед которым написано ключевое слово tryОбработка исключения начинается

Слайд 6Определение исключений
Выделить контролируемый блок – блок try
Предусмотреть генерацию одного или

нескольких исключений операторами throw внутри блока try или внутри функций,

вызываемых из этого блока
Разместить сразу за блоком try один или несколько обработчиков исключений catch
Определение исключенийВыделить контролируемый блок – блок tryПредусмотреть генерацию одного или нескольких исключений операторами throw внутри блока try

Слайд 7try { // фрагмент кода }

throw выражение

Тип выражения, стоящего после

throw, определяет тип порождаемого исключения

catch ( … ) { //

действия по обработке исключения }
try { // фрагмент кода }throw выражение		Тип выражения, стоящего после throw, определяет тип порождаемого исключенияcatch ( …

Слайд 8catch (Type info)
{ // обработка исключения типа Type


// с использованием значения info

}
catch (Type)
{ // обработка исключения типа Type}

catch (…)
{ // обработка исключений всех типов}
catch (Type info) 	 { // обработка исключения типа Type    // с использованием значения

Слайд 9Перехват исключений
Создают копию параметра throw в виде статического объекта, который

существует до тех пор, пока исключение не будет обработано;
В поисках

подходящего обработчика раскручивают стек, вызывая деструкторы локальных объектов, выходящих из области действия;
передают объект и управление обработчику, имеющему параметр, совместимый по типу с этим объектом
Перехват исключенийСоздают копию параметра throw в виде статического объекта, который существует до тех пор, пока исключение не

Слайд 10 Обработчик считается найденным, если тип объекта, указанного после throw:
тот же,

что и указанный в параметре catch (параметр может быть записан

в форме T, Const T, T& или const T&, где T – тип исключения);
является производным от указанного в параметре catch (если наследование производилось с ключом доступа public):
является указателем, который может быть преобразован по стандартным правилам преобразования указателей к типу указателя в параметре catch.
Обработчик считается найденным, если тип объекта, указанного после throw:тот же, что и указанный в параметре catch (параметр

Слайд 11Пример
#include
// класс, информирующий о своем
// создании

и уничтожении

class Hello
{Hello() { cout

endl; }
~Hello() { cout << “Bye!” << endl; }
};
 

Пример #include // класс, информирующий о своем // создании и уничтоженииclass Hello  {Hello() { cout

Слайд 12void f1( )
{ifstream ifs(name); // открываем файл
if

(!ifs)
{ cout

endl;
throw “Ошибка при открытии файла”;
}
}
void f2( )
{Hello H; // создаем локальный объект
f1(); // вызываем функцию, генерирующую исключение
}

Пример

void f1( ) {ifstream ifs(name); // открываем файл  if (!ifs)	   { cout

Слайд 13Пример
int main( )
{ try
{ cout

try-блок”

из try-блока” << endl;
}
catch( int i)
{ cout << “вызван обработчик int, исключение - ” << i;
cout << endl;
return -1;
}

Пример int main( ){ try 	{ cout

Слайд 14Пример
catch( const char * p)
{ cout

- ” << p << endl;
return -1;
}
catch( … )
{ cout << “вызван обработчик всех исключений ”;
cout << endl;
return -1;
}
return 0; // обошлось без исключительных ситуаций
}
Пример  catch( const char * p)  { cout

Слайд 15Результаты выполнения программы
входим в try-блок
Hello!
генерируем исключение
Bye!
вызван обработчик const char *,

исключение – Ошибка при открытии файла

Результаты выполнения программы	входим в try-блок	Hello!	генерируем исключение	Bye!	вызван обработчик const char *, исключение – Ошибка при открытии файла

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика