On Friday, March 09, 2012 08:42:25 Chris Pons wrote: > I am new to D and have been playing around with Assert. I figured > that using a message with assert would be very helpful, but > unfortunately when the message is printed to the console, the > console closes and my program ends. > > Is there any way to get a more permanent message? > > I've tried adding system("PAUSE") and it doesn't have any effect. > > Is there any way I could have the assert function print the > message to a file? > > I'm using VS2010 and Visual D if that is of any importance.
Assertions throw an AssertError when they fail. No statements after the assertion failure will be run. Rather, the AssertError will unwind the stack until it exits main. When it exits main, it gets caught, and it's printed out. Whatever message you gave assert it is part of that. It has nothing to do with files. If you want to specifically write to a file, then you're going to have to check with your own function, write to the file if it fails, and then assert afterwards. And I'd argue that that is horribly ugly and should be avoided. Screwing with your program like that just because your dev environment is annoying enough to close its console window when the program exits isn't a good idea. What you should almost certainly be doing is changing Visual Studio's settings so that it doesn't close the Window when the program exits. I know that it's possible. I've done it, but I rarely use Windows, and I don't remember what you have to do. So, unfortunately, I can't be of much help to you there, but that's the solution that you should almost certainly be using. If no one else around here can post how to do it, then I would think that you'd be able to find how via google easily enough. - Jonathan M Davis