Try und catch mit CTime funktioniert nicht
-
Die drei ... sind kein Platzhalter für einen Namen den dir nur keiner sagen will.
-
Dies wurde mir von Tommix in einem anderen Forum mitgeteilt und löst das Problem:
CStringA _Datestring = "20090899"; COleDateTime mailDownloadDate; SYSTEMTIME mailDownloadDate2; memset(&mailDownloadDate2, 0, sizeof(SYSTEMTIME)); // .wHour usw. = 0; mailDownloadDate2.wYear = atoi(_Datestring.Left(4)); mailDownloadDate2.wMonth = atoi(_Datestring.Mid(4,2)); mailDownloadDate2.wDay = atoi(_Datestring.Mid(6,2)); try { mailDownloadDate = mailDownloadDate2; if (mailDownloadDate.GetStatus() != COleDateTime::valid) throw "error"; COleDateTimeSpan ageInDays = COleDateTime::GetCurrentTime() - mailDownloadDate; return (int) ageInDays.GetDays(); } catch (char const*) { // Handle the exception return 0; }
-
TriplePoint schrieb:
Die drei ... sind kein Platzhalter für einen Namen den dir nur keiner sagen will.
Im Klartext: so ein Konstrukt
try { //... }catch(...) { //... }ist syntaktisch korrekt. Da sollst du also nix einsetzen.
Hier werden einfach alle Exceptions behandelt.
-
...hat in C++ sogar einen Namen: ellipsis.
-
@StefanKittel:
war etwas blöd formuliert, habe damit so eine Ellipse gemeint.Musst mal noch verraten, ob er bei dann dadurch anspringt...
-
Hallo,
ich hab das und noch ganz viel anderes ausprobiert. Keine Exception funktioniert mit CTime. Kann das Sein dass MS das einfach vergessen hat?
Stefan
-
In meiner MSDN steht dazu bei CTime:
It is your responsibility to validate the arguments prior to calling.
-
Dann brauch ich nur noch ne Routine um Schalttage berechnen zu können. Da stürzt CTime nämlich auch ab

-
Wenn du nicht an CTime gebunden bist, könntest du einfach COleDateTime benutzen und davon SetDate(...), der sagt dir dann schon, ob das gültig ist oder nicht.
-
isabeau schrieb:
Wenn du nicht an CTime gebunden bist, könntest du einfach COleDateTime benutzen und davon SetDate(...), der sagt dir dann schon, ob das gültig ist oder nicht.
Hallo,
siehe 1. Seite. Das mach ich schon. Ich fand es nur komisch, dass MS hier die exception scheinbar vergessen hat.
-
[quote="StefanKittel"]
isabeau schrieb:
Ich fand es nur komisch, dass MS hier die exception scheinbar vergessen hat.
CTime ist eine gemeinsame Klasse von MFC und ATL. Eine CException* käme in der ATL nicht gut an.