Ich fand, dass es drei Möglichkeiten gibt, eine Ausnahme zu fangen, was sind die Unterschiede?fangen Ausnahme durch Zeiger in C++
1) Fang nach Wert;
2) Fang durch Referenz;
3) Fang per Zeiger;
Ich weiß nur, dass catch nach Wert wird zwei Kopien des Objekts aufrufen, fangen durch Verweis wird eine aufrufen. Also, wie wäre es mit Zeiger? Wann Fang durch Zeiger verwenden? Kann ich neben einem Objekt auch einen Zeiger auf ein Objekt wie dieses werfen?
class A {}
void f() {
A *p = new A();
throw p;
}
Sie kann __not__ keine Ausnahme durch Zeiger abfangen. Sie können eine Ausnahme abfangen, bei der es sich um einen Zeiger handelt. Das Problem ist, dass A und A * zwei völlig verschiedene Typen sind. Wenn Sie einen Zeiger auf A werfen, können Sie nur Werte oder Referenzen erfassen. Aber es ist ein A *, das Sie durch Wert oder Referenz nicht die A. fangen. –