looser throw specifier - Videogames Blogs

looser throw specifier



J'utilisais assez volontiers les descriptions de "quelles exceptions peuvent être produites par cette fonction" en Java. Nettement moins en C++. J'ai en tête que le compilateur n'était pas si fiable que ça sur ce point et que le jeu n'en vaut donc pas la chandelle.

Mais il y a au moins un cas pour lequel ça semble fonctionner et qui mérite qu'on y réfléchisse: les destructeurs (et plus particulièrement les destructeurs d'exception).

class InvalidArgs : public LibraryException { public:
    InvalidArgs(const std::string &detail) :
        LibraryException(INVALID_ARG_SUBCODE, INVALID_ARG_NONSENSE, detail)
    {}
    virtual ~InvalidArgs() throw() {}
   // LibraryException has defined its own destructor unable to throw any exception.
   // we can only make this stricter when sub-classing it.
};

...

--------------------------------
 
Overwatch - Évènement saisonnier Anniversaire Overwatch 2018 | 22 mai au 11 juin | PS4

-------------------------------------