Полезно за вас: Речник | Игри | Новини | Фирми | Рецепти | Обяви
Начало на реферати

Езикови средства за създаване на усотйчив код


Информационни технологии | 2009-12-04 | 74 сваляния

19 Езикови средства за създаване на усотйчив код. Предоставени от 32 битова среда възможности за целта. Въведение в SEH механизма. Терминираща обработка (__finally). Възможни двусмислия при наличие на терминиращи блокове.


  1. Въведение в SEH.

SEH(Structure Exception Handling) структурирана обр. на изключителни ситуации.

Това е вграден механизъм за обработка на софтуерни и хардуерни изкл. ситуации.

Не добре структуриран код:

int ConcStr( TCHAR* pszDest, TCHAR* pszSrc, int cDest ){

TCHAR* pResult = NULL;

if( pszDest && pszSrc ){

int nDest = lstrlen( pszDest);

int nSrc = lstrlen( pszSrc);

if(( nDest + nSrc) < cDest ){

pResult = lstrcat( pszDest, pszSrc );

}

}

if ( pResult ){

return lstrlen (pResult);

}

else{

return 0;

}

}

Добре структуриран код:

int ConcStr( TCHAR* pszDest, TCHAR* pszSrc, int cDest )

{

__try

{

TCHAR* pResult = lstrcat ( pszDest, pszSrc );

return lstrlen( pResult );

}

__except( EXCEPTION_EXECUTE_HANDLER )

{

return 0;

}

}


Exception ще се генерира във вторият случай.


  1. При липса на


Блокът след exception handler ще се изпълни при наличие на exception в try. Блокът exception се изпълнява в обсега на try.


В 32 битова среда има следните възможности за прихващане и обработка на exception:

  1. Може да се ползва SEH механизма на ОС.

  2. Може да се ползва собствения за езика механизъм за обработка на exceptions.

  3. Възможна е комбинация то 1 и 2.


При откриване на exception става:

  1. Изпълняваната нижка се прекратява.

  2. Управлението се предава от usermode в kernelmode (ядрото на ОС поема управлението).

Търси се начин за реакция чрез exception блок. Ако има то тоий се изпълнява, а ако няма диспечера генерира служебен exception handler.


Ако има блок exception handler то:

  1. Да се изчисти паметта от излишни данни.

  2. Да се възстановят операциите в БД (ако има).

  3. Да се освободят заетите ресурси.

  4. В LOG файл може да се запише информация.

  5. Диалогов прозорец с полезна информация.



  1. Терминираща обработка (__finally).

__finally представлява блок за който може да се гарантира че винаги ще се изпълни.

BOOL Myfunc()

{

Езикови средства за създаване на усотйчив код

Добави своя коментар:



Тагове от реферата: , , ,


Подобни материали


Приложно ниво Информационни технологии | 2010-11-16 | 62 прочитания
Споделени ресурси и отдалечено управление на компютри в Интернет Информационни технологии | 2010-11-16 | 102 прочитания
Оценка на грешката при класификация с невронна мрежа Информационни технологии | 2010-11-16 | 44 прочитания
Класове и обекти(1) Информационни технологии | 2010-11-16 | 54 прочитания
Използване на Apache Информационни технологии | 2010-11-16 | 134 прочитания
Интерактивна мултимедиая (Interactive Multimedia ) Информационни технологии | 2010-11-16 | 119 прочитания
Паралелен интерфейс CENTRONICS в IBM PC XTAT. Програмен модел Информационни технологии | 2010-11-16 | 47 прочитания
Защита на документ с парола Word Информационни технологии | 2010-11-16 | 167 прочитания
Поколения системи за управление на ТБД Информационни технологии | 2010-11-16 | 115 прочитания
Управление на файловете 1 Информационни технологии | 2010-11-16 | 33 прочитания