Frage 1:In C++ ist es möglich, eine Ausnahme zu werfen, die nicht von std :: exception abgefangen wird.
Ist es möglich, eine Ausnahme zu werfen, die nicht von std :: exception gefangen werden?
try
{
}
catch(std::exception & e)
{
}
catch(...)
{
//Is this block needed?
}
Frage 2:
Ist es besser zu haben:
catch(std::exception & e)
Oder
catch(std::exception e)
Oder
catch(const std::exception &e)//<--- this is the method I usually use
"Das einzige, was übrig bleibt, ist die dritte Option" - Eine andere Option, aber keine wirklich gute Option, ist das Werfen und Fangen nach Zeiger. – ChrisW
@ChrisW: Auch wenn Microsoft es durch COM zu einer allgemeinen Option gemacht hat, wird das Werfen und Fangen nach Zeiger im Allgemeinen nicht empfohlen. http://www.parashift.com/c++faq-lite/exceptions.html#faq-17.6 –
@ Dribeas - COM macht Ausnahmen eine völlig andere Art; Allerdings hat MS ihre MFC-Bibliothek entworfen, um Zeiger zu werfen/abzufangen. Dies war, weil, als sie zuerst versuchten, es zu implementieren, ihr C++ - Compiler keine Ausnahmen unterstützte! Es waren also nur Makros über setjmp/longjmp, ohne dass sich der Stapel abwickelte ... unglaublich unausgegoren. –