Составители:
*/
catch ( COleException *e ) // OLE-исключения
}
tch(COleDispatchException *e ) // исключения диспетчеризации
// (OLE-автоматизации)
catch( CUserException *e ) // выводит окно сообщения,
//а затем генерирует исключение CException
...
след за этим следует блок catch (CException *e). В противном случае
компилятор
catch ен следовать после предыдущих блоков,
{ пилятор выдаст код ошибки
e->GetErrorMessage( szCause, 255 ); csText += szCause;
pDC->TextOut( 90, vSize*iLine++, csText );
лючение, в программу включен блок catch
(...), который перехватывает все исключения, но выдает не очень полную
информацию
catch( лючений!!!
{
pDC->TextOut( 90, vSize*iLine++, csText );
throw; // передает исключение внешнему блоку catch,
// приведенному ниже
{
...
ca
{
...
}
{
}
В
воспринял бы предыдущие блоки как ошибочные.
( CException *e ) // долж
// иначе ком
TCHAR szCause[255] ;
csText = "CException cause: ";
}
И поскольку нам известно, что ни один из классов CException на самом
деле не может обработать данное иск
о том, что произошло.
...) // перехват всех иск
csText = "In inner catch all block: ";
pDC->TextOut( 90, vSize*iLine++, csText );
csText = "Throwing exception to outer catch block: ";
}
Исключение, произошедшее во внутреннем блоке try, перехватывается
внутренним блоком catch и передается внешнему блоку catch. Оператор throw
предотвращает выполнение фрагмента программы, который следует после
47
*/
catch ( COleException *e ) // OLE-исключения
{
...
}
catch(COleDispatchException *e ) // исключения диспетчеризации
// (OLE-автоматизации)
{
...
}
catch( CUserException *e ) // выводит окно сообщения,
{ //а затем генерирует исключение CException
...
}
Вслед за этим следует блок catch (CException *e). В противном случае
компилятор воспринял бы предыдущие блоки как ошибочные.
catch ( CException *e ) // должен следовать после предыдущих блоков,
{ // иначе компилятор выдаст код ошибки
TCHAR szCause[255] ;
csText = "CException cause: ";
e->GetErrorMessage( szCause, 255 ); csText += szCause;
pDC->TextOut( 90, vSize*iLine++, csText );
}
И поскольку нам известно, что ни один из классов CException на самом
деле не может обработать данное исключение, в программу включен блок catch
(...), который перехватывает все исключения, но выдает не очень полную
информацию о том, что произошло.
catch(...) // перехват всех исключений!!!
{
csText = "In inner catch all block: ";
pDC->TextOut( 90, vSize*iLine++, csText );
csText = "Throwing exception to outer catch block: ";
pDC->TextOut( 90, vSize*iLine++, csText );
throw; // передает исключение внешнему блоку catch,
// приведенному ниже
}
Исключение, произошедшее во внутреннем блоке try, перехватывается
внутренним блоком catch и передается внешнему блоку catch. Оператор throw
предотвращает выполнение фрагмента программы, который следует после
47
Страницы
- « первая
- ‹ предыдущая
- …
- 45
- 46
- 47
- 48
- 49
- …
- следующая ›
- последняя »
