Immaginate due pezzi simili di codice:Qual è la differenza tra lancio e lancio con arg di eccezione rilevata?
try {
[...]
} catch (myErr &err) {
err.append("More info added to error...");
throw err;
}
e
try {
[...]
} catch (myErr &err) {
err.append("More info added to error...");
throw;
}
Sono questi in modo efficace lo stesso o si differenziano in qualche modo sottile? Ad esempio, il primo causa l'esecuzione di un costruttore di copie, mentre forse il secondo riutilizza lo stesso oggetto per ricrearlo?
Ah, ho completamente dimenticato di tagliare! Dannazione, è importante! Grazie per averlo portato. +1 (Anche se penso che quando hai scritto "... preservando il tipo statico originale ..." intendevi il tipo _dynamic_.Questo è chiamato _dynamic type_, dopotutto, se non il _ "tipo statico originale" _). - – sbi
Great risposta, me ne sono completamente dimenticato. – GManNickG
Sono felice che qualcun altro abbia incontrato il problema _slicing_;) –