C++ 3d.Комментарии


Проверка спецификаций исключений - часть 2


  • // ключевое слово nothrow отсутствует: // f() разрешено возбуждать любые исключения прямо или косвенно void f() { // ... }

  • // f() запрещено возбуждать любые исключения прямо или косвенно, // проверяется на этапе компиляции void f() nothrow

    { // ... }

  • void f() {

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

    nothrow { // nothrow-блок

    // код, находящийся в данном блоке никаких исключений возбуждать // не должен, проверяется на этапе компиляции

    }

    // здесь снова можно возбуждать исключения

    }

  • Еще одним неудачным решением является возможность возбуждать исключения любых (даже встроенных!) типов. Правильным решением является введение специального базового класса для всех возбуждаемых исключений с изначально заложенной в нем специфической функциональностью.




    - Начало -  - Назад -  - Вперед -



    Книжный магазин