On 7/26/17 8:51 PM, FatalCatharsis wrote:
On Thursday, 27 July 2017 at 00:48:48 UTC, ketmar wrote:
FatalCatharsis wrote:
On Thursday, 27 July 2017 at 00:34:28 UTC, ketmar wrote:
wrap the whole event handler function in `try/catch` block, and
print it there. after all, this is what Dmain does, and so can you.
having *full* stack trace has no sense there anyway, as you know for
sure that event handler is called by windows, not by you (and
usually from your event loop anyway, so detailed stack trace has
little useful info).
I tried that like so:
https://gist.github.com/FatalCatharsis/39c5f35ae78ecd5399eebe0fb2491004
I put exception blocks both around main and around the invocation of
the hash lookup and still get no printouts anywhere, including at the
beginning and end of main.
'cause you never printed anything.
the writeln("start"); and writeln("end"); in main. This is what I meant
by printing. These do not appear in the output. The programs starts and
immediately ends without printing "start" and "end".
try flushing the output. In some cases the output streams do not flush
on newlines.
I did not put an
output in the exception handler of the WndProc because writeln can throw
and the function is marked nothrow. All I as trying to do there was get
it to recover.
Just surround writeln with try/catch(Exception), should work.
You could also just use good old printf.
-Steve