Cześć, mam takie przypadki:
try{
//cos tam
}catch(Ex e){
throw;
}
oraz
try{
//cos tam
}catch(Ex e){
throw e;
}
Czym różnią się te 2 fragmenty? tzn z tego co szukałem to samo throw; rzuci jeszcze raz TEN SAM wyjatek. Za to throw e rzuci chyba KOPIĘ? Z tym że na stackOv znalzazłem takie zdanie:
"Note that throw; is the only safe way to re-throw the current exception - it's not equivalent to
catch (Ex const & e) { throw e; }"
I nie rozumiem czemu to nie jest to samo co throw e; gdy e złapalismy przez referencje?
Jaka jest w takim razie roznica miedzy tymi 3 sytuacjami?
PS. ewentualnie sytuacja 4 byłaby taka:
try{
//cos tam
}catch(Ex const & e){
throw e;
}