Di tanto in tanto (purtroppo troppo spesso) devo correggere codice come questo:
// C++ code
bool anyOldFunction(Param p) {
try {
...
if(some_condition_here) {
handleErrorX();
return false;
} else if(other_condition) {
return false; // (*stackexchange question comment*) Apparently no additional error action taken here
}
...
return true;
} catch(...) {
// (*old comment*) Catch all possible error (FroobleFub and BrabbleBub can happen)
return false;
}
}
Quindi, l'implementatore originale aveva effettivamente alcuni indicando quali eccezioni potevano essere lanciate (sebbene l'elenco non fosse esaustivo) ma non aveva idea di come comportarsi in maniera decente e scartasse tutte le informazioni che poteva sono usciti dagli oggetti di eccezione, lasciando il codice di chiamata / il contesto di chiamata non più saggio.
Esiste un nome per questo anti-pattern? (Se anti-pattern è davvero.)