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.
};
...
Source: Bilou HomeBrews Blog
URL: http://sylvainhb.blogspot.com
-------------------------------- |
Overwatch - Évènement saisonnier Anniversaire Overwatch 2018 | 22 mai au 11 juin | PS4 |
|
-------------------------------------