Worst Exception!!
-
Up until yesterday "Out of Memory" was my worst exception. By coincidence, today I found out was not actually an exception, but an error condition in Java, which explains why I wasn't catching it. So now its been promoted to worst throwable. And I hate pretty much everything you can throw.
I have a top-level exception (well, throwable) catcher that catches all these and creates another, Unexpected Error :laugh:
-
Jacquers wrote:
object reference not set to an instance of an object
This exception message is not useful at all. It would be nice if it gives the object name.
TOMZ_KV
Tomz_KV wrote:
This exception message is not useful at all. It would be nice if it gives the object name.
It would be nice if the computer served up tea and crumpets while it explained the vagaries of the code that put it in this situation, but the fact of the matter is that this is a normal unhandled exception message. It is your responsibility as a developer to throw explanatory errors to the system before general purpose messages crumple it up into a general purpose error message. It should at least give you the stack trace, which tells you where the error occurred and if you read that line, it tells you the object it thought it was when the error occurred and you might even find out what the object really was when it was created if you follow the trace far enough. All general purpose error messages are an indication that the developer lacked the caring needed to create meaningful error messages in the special situation it was brought to, completely by (the lack of caring by) the developer's hand.
-
I have a top-level exception (well, throwable) catcher that catches all these and creates another, Unexpected Error :laugh:
The temptation is to wrap my entire runnable in something like: Try {// running my program} Catch (Throwable anything) { // act like nothing bad happened and restart somewhere nice } But my head tells me that handling every possible throwable in my code is probably not a great idea.
-
What's in your mind is the worst exception in programming?? My favourite is Out of Memory!
-
Up until yesterday "Out of Memory" was my worst exception. By coincidence, today I found out was not actually an exception, but an error condition in Java, which explains why I wasn't catching it. So now its been promoted to worst throwable. And I hate pretty much everything you can throw.
There's actually a really good reason for that, too. If it were an Exception, you'd catch it and try to run some more code, which would almost certainly not have the memory to run, throwing it again. Unexpected exceptions in catch/finally blocks can really screw your code up, so OOME is not supposed to be caught except in the explicit case that you really want to handle it. In Java there's very little you can do about it because you don't directly control your memory.
-
Uncaught Error - 'undefined' The error message that gets thrown when an HTML5 WebSocket crashes due to an unknown cause...
-= Reelix =-
-
Tomz_KV wrote:
This exception message is not useful at all. It would be nice if it gives the object name.
It would be nice if the computer served up tea and crumpets while it explained the vagaries of the code that put it in this situation, but the fact of the matter is that this is a normal unhandled exception message. It is your responsibility as a developer to throw explanatory errors to the system before general purpose messages crumple it up into a general purpose error message. It should at least give you the stack trace, which tells you where the error occurred and if you read that line, it tells you the object it thought it was when the error occurred and you might even find out what the object really was when it was created if you follow the trace far enough. All general purpose error messages are an indication that the developer lacked the caring needed to create meaningful error messages in the special situation it was brought to, completely by (the lack of caring by) the developer's hand.
-
What's in your mind is the worst exception in programming?? My favourite is Out of Memory!
For me, the worst is the Prism Framework's composition exception. There is often not enough detail to be able to tell exactly what the issue is - so you end up having to retrace through the composition of the object and its imports only to think its OK and the framework is screwing with you. Then after staring blankly at the code for an hour you finally see a missing export or an unhandled exception in a constructor somewhere and you curse Prism for not telling you that in the first place! Then you feel like an idiot for missing it for the last hour.
-
patbob wrote:
Check into sxstrace. It generates a log of all side-by-side library loads, reporting what library versions were checked and which were loaded (or not found). Totally useless for C# though, but useful for native code.
Hey, It will be very helpful to me if you please instruct me how to use that tool ??
I don't have time to do a full how-to, but briefly, you launch it from an admin window with the options to start logging. Launch your app and bring it to the error. Then run sxstrace again to stop logging. Then run sxstrace a final time to translate the binary log to a txt file. You'll have to google for details. In theory, every SxS access/DLL-search gets logged, which versions of which libraries it was looking for, which it found, their suitability, etc. In practice, it seems not everything. Hope that helps.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
-
I don't have time to do a full how-to, but briefly, you launch it from an admin window with the options to start logging. Launch your app and bring it to the error. Then run sxstrace again to stop logging. Then run sxstrace a final time to translate the binary log to a txt file. You'll have to google for details. In theory, every SxS access/DLL-search gets logged, which versions of which libraries it was looking for, which it found, their suitability, etc. In practice, it seems not everything. Hope that helps.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
Thanks, this is enough to get started! If I require more... I'll google it!
-
Do you work in the Department of Redundancy department? ABEND means "Abnormal End" ... there was no "Abnormal ABEND".
-
Tomz_KV wrote:
This exception message is not useful at all. It would be nice if it gives the object name.
It would be nice if the computer served up tea and crumpets while it explained the vagaries of the code that put it in this situation, but the fact of the matter is that this is a normal unhandled exception message. It is your responsibility as a developer to throw explanatory errors to the system before general purpose messages crumple it up into a general purpose error message. It should at least give you the stack trace, which tells you where the error occurred and if you read that line, it tells you the object it thought it was when the error occurred and you might even find out what the object really was when it was created if you follow the trace far enough. All general purpose error messages are an indication that the developer lacked the caring needed to create meaningful error messages in the special situation it was brought to, completely by (the lack of caring by) the developer's hand.
tea, yes!