try/catch funktioniert nicht!
-
Hallo Forum,
ich möchte Dateien lokal und auf dem Server öffnen, und das mit try/catch abfangen,
nur das bei z.B. einer falschen Url oder Pfad nie in den catch Teil reingesprungen wird! Vielleicht hat jemand eine Idee warum, hier der Code:... try{ pHtmlFile = (CHttpFile*) session.OpenURL(csHTTPAdress); // das Proggy stürzt schon hier ab! :( } catch(CFileException e) { bError = TRUE; return dwRet = 400; }das Programm kommt nie in den catch Bereich!
grüsse
pixel
-
OpenURL() wirft ja auch keine CFileException, sondern eine CInternetException*****, wenn ein Fehler aufgetreten ist (wichtig ist das * dahinter).
Und du solltest vermutlich die TRY/CATCH Makros verwenden:
TRY{ pHtmlFile = (CHttpFile*) session.OpenURL(csHTTPAdress); // das Proggy stürzt schon hier ab! :( } CATCH(CInternetException, e) { bError = TRUE; return dwRet = 400; } END_CATCH
-
mickeysoft macht das etwas anders - kann sein dass es daran liegt. versuch mal:
... TRY { .... } CATCH (CFileException, e) { .... } END_CATCH ...
-
Also die TRY/CTACH macros verwende ich nicht mehr, ist auch nicht nötig.
Man muss sich nur im klaren sein, dass die MFC Exception Pointer wirft und man diese auch aufräumen muss:try { pHtmlFile = (CHttpFile*) session.OpenURL(csHTTPAdress); } catch(CFileException *e) { e->Delete(); bError = TRUE; return dwRet = 400; }
-
Hallo,
@Martin, der Stern war's der Probleme machte, es geht jetzt genau wie in deinen Beispiel!
try{ pHtmlFile = (CHttpFile*) session.OpenURL(csHTTPAdress); } catch(CException* e) // dieser Stern! :) ich hab nur noch vorsichtshalber statt CFileException die CException genommen! { e->ReportError(); bError = TRUE; }pixel
-
pixel schrieb:
ich hab nur noch vorsichtshalber statt CFileException die CException genommen!
Besser ist das
(siehe mein Beitrag - OpenURL() wirft eine CInternetException*, wie dir die MSDN bestätigen kann)
-
pixel schrieb:
e->ReportError();Danach bitte
e->Deletenicht vergessen
-
ja, hab schon gemerkt, ist schon drin!

dankepixel