🗊Презентация Исключения. Как не допустить логических ошибок при выполнении программы (C++)

Нажмите для полного просмотра!
Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №1Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №2Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №3Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №4Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №5Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №6Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №7Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №8Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №9Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №10Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №11Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №12Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №13Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №14Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №15Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №16Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №17Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №18Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №19Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №20Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №21Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №22Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №23Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №24Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №25

Содержание

Вы можете ознакомиться и скачать презентацию на тему Исключения. Как не допустить логических ошибок при выполнении программы (C++). Доклад-сообщение содержит 25 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Исключения
Описание слайда:
Исключения

Слайд 2


Исключения. Как не допустить логических ошибок при выполнении программы (C++), слайд №2
Описание слайда:

Слайд 3





Некорректное создание 
объектов классов(1)
class Table{
    	int *l,*w,*h;
    	char* color;
    	bool Init(int l1,int w1, int h1,char* col);
	public:
    	Table(int len, int wid, int hei ,char* col, bool& err);
		void Print();
		~Table();
};
Описание слайда:
Некорректное создание объектов классов(1) class Table{ int *l,*w,*h; char* color; bool Init(int l1,int w1, int h1,char* col); public: Table(int len, int wid, int hei ,char* col, bool& err); void Print(); ~Table(); };

Слайд 4





Некорректное создание 
объектов классов(2)
bool Table::Init(int l1,int w1, int h1,char* col)
{    cout<<"bool Table::Init(int l1,int w1, int h1,char* col)\n";
    if( (l1>0) && (h1>0) && (w1>0) )
        {
        *l=l1;*h=h1;*w=w1;
        strcpy(color,col);
        return true;
        }
    else{
        cout<<"\tError, incorreect data init\n";
        return false;	}	}
Описание слайда:
Некорректное создание объектов классов(2) bool Table::Init(int l1,int w1, int h1,char* col) { cout<<"bool Table::Init(int l1,int w1, int h1,char* col)\n"; if( (l1>0) && (h1>0) && (w1>0) ) { *l=l1;*h=h1;*w=w1; strcpy(color,col); return true; } else{ cout<<"\tError, incorreect data init\n"; return false; } }

Слайд 5





Некорректное создание 
объектов классов(3)
Table::Table (int len,int wid, int hei,char* col,bool& err)
{
cout<<"Table::Table(int len,int wid, int hei,char col,bool& err)\n";
    h=new int;	l=new int;	w=new int;
    color=new char[20];
    err=Init(len, wid, hei, col);
    if(!err)
        {
         delete this;
        }
    else cout<<"Create Table\n";
}
Описание слайда:
Некорректное создание объектов классов(3) Table::Table (int len,int wid, int hei,char* col,bool& err) { cout<<"Table::Table(int len,int wid, int hei,char col,bool& err)\n"; h=new int; l=new int; w=new int; color=new char[20]; err=Init(len, wid, hei, col); if(!err) { delete this; } else cout<<"Create Table\n"; }

Слайд 6





Некорректное создание 
объектов классов(4)
void Table::Print()
{	 cout<<"void Table::Print()\n";
    cout<<"\tTable information:\n";
    cout<<"\t\t h = "<<*h<<"\n";
    cout<<"\t\t w = "<<*w<<"\n";
    cout<<"\t\t l = "<<*l<<"\n";
    cout<<"\t\t color: "<<color<<"\n\n";
}
Table::~Table()
{
    cout<<"Table::~Table()\n";
    delete h; delete l; delete w; delete[]color;
}
Описание слайда:
Некорректное создание объектов классов(4) void Table::Print() { cout<<"void Table::Print()\n"; cout<<"\tTable information:\n"; cout<<"\t\t h = "<<*h<<"\n"; cout<<"\t\t w = "<<*w<<"\n"; cout<<"\t\t l = "<<*l<<"\n"; cout<<"\t\t color: "<<color<<"\n\n"; } Table::~Table() { cout<<"Table::~Table()\n"; delete h; delete l; delete w; delete[]color; }

Слайд 7





Некорректное создание 
объектов классов(5)
int main()
{
    bool err=false;
    Table * T= new Table(-10,10,10,"black",err);

    if(!err) {  T=NULL;   return -1; }
    T->Print();
    delete T;
    return 0;
}
Описание слайда:
Некорректное создание объектов классов(5) int main() { bool err=false; Table * T= new Table(-10,10,10,"black",err); if(!err) { T=NULL; return -1; } T->Print(); delete T; return 0; }

Слайд 8





Механизм исключений
throw 
				для обозначения кода ошибки
try  
				для начала блока, в котором может 				возникнуть «аварийная» ситуация
catch 
				для обработки кода ошибки, 					выкидываемой throw.
Описание слайда:
Механизм исключений throw для обозначения кода ошибки try для начала блока, в котором может возникнуть «аварийная» ситуация catch для обработки кода ошибки, выкидываемой throw.

Слайд 9





Что такое исключение

Исключение – это объект, а не ситуация.
С исключением можно работать как с переменной.
Тип объекта исключения может быть любым.
Описание слайда:
Что такое исключение Исключение – это объект, а не ситуация. С исключением можно работать как с переменной. Тип объекта исключения может быть любым.

Слайд 10





Определение исключения
Синтаксис:
throw выражение_генерации_исключения;

Примеры:

throw “Ошибка: деление на ноль”; 
throw 1; 
throw s[i];
Описание слайда:
Определение исключения Синтаксис: throw выражение_генерации_исключения; Примеры: throw “Ошибка: деление на ноль”; throw 1; throw s[i];

Слайд 11





Объект - исключение
throw  MyException(1,”Error 1”); 
// оператор-ловушка  - catch(MyException m)
throw  new MyException(1,”Error 1”); 
// оператор-ловушка - catch(MyException *m)
Описание слайда:
Объект - исключение throw MyException(1,”Error 1”); // оператор-ловушка - catch(MyException m) throw new MyException(1,”Error 1”); // оператор-ловушка - catch(MyException *m)

Слайд 12





Перехват исключения
Синтаксис:
try {
		/* контролируемый блок */
	    }
catch (спецификация исключения № 1) 
		{  /* блок обработки  1*/  }
catch (спецификация исключения № 2) 
		{  /* блок обработки 2*/  } 
…
catch (спецификация исключения № n) 
		{  /* блок обработки  n*/  }
Описание слайда:
Перехват исключения Синтаксис: try { /* контролируемый блок */ } catch (спецификация исключения № 1) { /* блок обработки 1*/ } catch (спецификация исключения № 2) { /* блок обработки 2*/ } … catch (спецификация исключения № n) { /* блок обработки n*/ }

Слайд 13





Спецификация исключения
(тип имя) 	
			Если необходимо объект – исключение 			использовать  в блоке обработки
(тип) 	
			Если в блоке обработки объект-исключение 		не используется
(…)	 
			Такой обработчик перехватывает все 			исключительные ситуации.
Описание слайда:
Спецификация исключения (тип имя) Если необходимо объект – исключение использовать в блоке обработки (тип) Если в блоке обработки объект-исключение не используется (…) Такой обработчик перехватывает все исключительные ситуации.

Слайд 14





Правила работы с try
Если сработал хоть один блок обработки исключений, то последующие не выполнятся.
Описание слайда:
Правила работы с try Если сработал хоть один блок обработки исключений, то последующие не выполнятся.

Слайд 15





Правила работы с try
Если сработал хоть один блок обработки исключений, то последующие не выполнятся.
Последним обработчиком должен быть самый общий вариант, для обработки всех исключений.
Описание слайда:
Правила работы с try Если сработал хоть один блок обработки исключений, то последующие не выполнятся. Последним обработчиком должен быть самый общий вариант, для обработки всех исключений.

Слайд 16





Правила работы с try
Если сработал хоть один блок обработки исключений, то последующие не выполнятся.
Последним обработчиком должен быть самый общий вариант, для обработки всех исключений.
Если в блоке try не выпало исключительной ситуации, то все блоки catch пропускаются и выполняются те действия, которые дальше идут по коду.
Описание слайда:
Правила работы с try Если сработал хоть один блок обработки исключений, то последующие не выполнятся. Последним обработчиком должен быть самый общий вариант, для обработки всех исключений. Если в блоке try не выпало исключительной ситуации, то все блоки catch пропускаются и выполняются те действия, которые дальше идут по коду.

Слайд 17





Правила работы с try
Если сработал хоть один блок обработки исключений, то последующие не выполнятся.
Последним обработчиком должен быть самый общий вариант, для обработки всех исключений.
Если в блоке try не выпало исключительной ситуации, то все блоки catch пропускаются и выполняются те действия, которые дальше идут по коду.
Блоки try и catch могут быть вложенными.
Описание слайда:
Правила работы с try Если сработал хоть один блок обработки исключений, то последующие не выполнятся. Последним обработчиком должен быть самый общий вариант, для обработки всех исключений. Если в блоке try не выпало исключительной ситуации, то все блоки catch пропускаются и выполняются те действия, которые дальше идут по коду. Блоки try и catch могут быть вложенными.

Слайд 18





Пример: класс MyEx (1)
class MyEx{
	public:
    	int code;
    	char* message;
   	 MyEx(int a, char* b);
    	~MyEx();
};
Описание слайда:
Пример: класс MyEx (1) class MyEx{ public: int code; char* message; MyEx(int a, char* b); ~MyEx(); };

Слайд 19





Пример : класс MyEx (2)
MyEx::MyEx (int a, char* b)
{
    cout<<"MyEx::MyEx(int a,char* b)\n";
    code=a;
    message=new char [ strlen(b) + 1 ];
    strcpy ( message, b );
}
Описание слайда:
Пример : класс MyEx (2) MyEx::MyEx (int a, char* b) { cout<<"MyEx::MyEx(int a,char* b)\n"; code=a; message=new char [ strlen(b) + 1 ]; strcpy ( message, b ); }

Слайд 20





Пример : класс MyEx (3)
MyEx::~MyEx()
{
    cout<<"MyEx::~MyEx()\n";
    delete[] message;
}
Описание слайда:
Пример : класс MyEx (3) MyEx::~MyEx() { cout<<"MyEx::~MyEx()\n"; delete[] message; }

Слайд 21





Пример : генерация исключений(1)
void Table::Init (int len ,int wid, int hei, char* col)
{
    *l=len; *w=wid; *h=hei; strcpy(color,col);
}
Описание слайда:
Пример : генерация исключений(1) void Table::Init (int len ,int wid, int hei, char* col) { *l=len; *w=wid; *h=hei; strcpy(color,col); }

Слайд 22





Пример : генерация исключений(2)
Table::Table (int len, int wid, int hei, char *col)
{
    	if(len>0&&wid>0&&hei>0)
			{  h=new int; l=new int; w=new int;
			   color=new char[20]; 				   		   Init(len,wid,hei,col);
			}
    	else { 
			throw(MyEx(1,"some parameters are not 							positive"));
			}	}
Описание слайда:
Пример : генерация исключений(2) Table::Table (int len, int wid, int hei, char *col) { if(len>0&&wid>0&&hei>0) { h=new int; l=new int; w=new int; color=new char[20]; Init(len,wid,hei,col); } else { throw(MyEx(1,"some parameters are not positive")); } }

Слайд 23





Пример : генерация исключений(3)
int main()
{
    try
		{
        	Table* T=new Table(-1,5,6, “green”);
        	T->Print();
        	delete T;
       	 }
    catch(MyEx e)
		{
        	 cout<<e.code<<" - error!"<<e.message<<endl;
   	 }
Описание слайда:
Пример : генерация исключений(3) int main() { try { Table* T=new Table(-1,5,6, “green”); T->Print(); delete T; } catch(MyEx e) { cout<<e.code<<" - error!"<<e.message<<endl; }

Слайд 24





Пример : генерация исключений(3)
catch(...)
		{
        	 cout<<"I catch everything"<<endl;
    	}
    return 0;
}
Описание слайда:
Пример : генерация исключений(3) catch(...) { cout<<"I catch everything"<<endl; } return 0; }

Слайд 25





Зачем нужны исключения
Исключение вынуждает вызывающий код признать состояние ошибки и обработать его. 
Исключение обеспечивает четкое разделение между кодом, который обнаруживает ошибку, и кодом, который обрабатывает ошибку.
Описание слайда:
Зачем нужны исключения Исключение вынуждает вызывающий код признать состояние ошибки и обработать его. Исключение обеспечивает четкое разделение между кодом, который обнаруживает ошибку, и кодом, который обрабатывает ошибку.



Похожие презентации
Mypresentation.ru
Загрузить презентацию