[Visual C++]Exceptions. Dwa pytania

Jak na górze, ja w sprawie wyjątków;p

Pierwsze. Używając bloku try i catch, wewnątrz catch “Exception ^e” (o tym dlaczego precyzuje - później) mam jakiś tam “cout” który wyrzuca po prostu całe “e” jako string na ekran. Dajmy na to, że wywołałem błąd dzielenia przez zero. I teraz dostał niezłą rozpiskę. co, gdzie jak, w którym pliku, jakim wierszu… można to skrócić ? Ale oczywiście nie w żaden “ręczny” sposób. Wystarczyło by same “divisionByZero Exception” i tyle. Nikt nie musi wiedzieć, że to jest zapisane w tej linii i w tym pliku ;p (tak wiem, to dla programisty, ale mi to nie potrzebne, znam swoje błędy;p). Więc jakaś funkcja czy coś, by wyrzucało jedynie nagłówek błędu, a nie całą rozpiskę.

I coś jeszcze, czy to “Exception ^e” w catch wyłapie wszystkie błędy ? niby to pod visuala ale widziałem dużo różnych opcji. Chociaż by “SecurityException *se” lub “IOException *ioe”. To są dwa które znalazłem. Nie wiem czy jest tego więcej. Czy muszę wpisywać zawsze do tych 3 typów błędów ? Widać, że to różne typy, teoretycznie można przewidzieć, który ewentualnie może się “zdarzyć”. Więc pytanie, czy podstawowe Exception ^e wystarczy do obsługi wszystkich Windowsowych błędów (w każdej automatycznie generowanej funkcji zdarzeń jest tylko proste Exception) czy może trzeba się bardziej rozpisać ?

To dość pilne, bo wchodzę w niezłe “krzaki” i tu każdy element kodu jest podejrzany, więc wszystko leży w “try catch” ;p

  1. e->GetType() zwraca nazwę typu obiektu, wystarczy wypisać Name.

  2. Wszystkie wyjątki .NET muszą dziedziczyć po Exception więc tak, to łapie wszystkie typy wyjątkó.

Ok, dzięki. Pierwsze się zgadza, getType() zwraca sam nagłówek błędu. A co do drugiego to na razie nie sprawdzę, ufam na słowo ;p Jak coś to wejdź jeszcze do drugiego tematu, tam też problem, tylko, że inny;p

Po pierwsze podstawową informację o wyjątku daje właściwość Exception.Message.

Po drugie czasem warto stosować wielokrotny catch, żeby w zależności od typu wyjątku różnie reagować.

Po trzecie: http://msdn.microsoft.com/en-us/library … ption.aspx