예외를 잡는 세 가지 방법이 있다는 것을 알게되었는데 그 차이점은 무엇입니까?C++에서 포인터로 예외를 catch
1) 값으로 캐치;
2) 참조로 캐치;
3) 포인터로 포착;
값으로 catch가 객체의 사본 두 개를 호출한다는 것을 알고, 참조로 catch하면 하나만 호출됩니다. 그러면 포인터로 잡는 것은 어떨까요? 언제 포인터로 catch를 사용할 수 있습니까? 객체를 던지는 것 외에도 객체에 포인터를 던질 수 있습니까?
class A {}
void f() {
A *p = new A();
throw p;
}
__not__ 포인터로 예외를 잡을 수 있습니다. 포인터가되는 예외를 잡을 수 있습니다. 문제는 A와 A *가 완전히 다른 두 가지 유형이라는 것입니다. A에 포인터를 던지면 값이나 참조 만 잡을 수 있습니다. 그러나 A *입니다. 값으로 참조하거나 A를 참조하지 않습니다. –