How are people doing error handling in their Pocket PC programs?
There's the traditional style of having each function return an error code, and having each caller check that code for success or failure. I don't mind that, but I do find it can be tedious and make the code a little ugly.
An augment to that style is to have a global place to set additional error info, and check that for more info if an error code was returned. This is like errno in standard C.
Then, there's the non-local jumping and automatic object destruction of standard C++ exceptions. I find exceptions useful, but my understanding is that they are not supported in eVC3, only in eVC4. Are people using exceptions in eVC4?
Microsoft has its own exception-like mechanism in C and C++, which I assume is supported in eVC3. Are people using this? What's it like?
You can find similar exception-like libraries on the web, or roll your own using setjmp/longjmp. Compared to Microsoft's, they'll have pros and cons. What are your experiences?
Another option is to use setjmp/longjmp in a less structured, more adhoc way. I imagine this could get messy, I've never done it.
Another option, going further down that road, is to be like Quake 2 and basically have one error function which does a longjmp to one error handling place. I think this is OK, but it doesn't really leave much options for handling the error, or recovering from it.
Is anyone using signals to handle errors?
So, what are people doing to handle errors in their Pocket PC programs?