Default Setup Suggestions

delphi package - automated exception handling
Post Reply
eberry
Posts: 13
Joined: Tue Oct 25, 2005 1:59 pm

Default Setup Suggestions

Post by eberry »

The default error handling "send bug report" screens contain two checkboxes with a caption of "Some Text" and the inital exception handler dialog that shows does not contain the exception error message (often the parameter to the exception's constructor). I realize this stuff is configurable, but I think a more useful default screen setup would have more informative checkbox captions and would display the exception error message, instead of the more generic "An error occurred in the application", since the error message is often useful to diagnose problems and shouldn't be as hidden. It might also be better to have the default screens follow Windows conventions a bit more, by capitalizing the initial character of button captions.
madshi
Site Admin
Posts: 10764
Joined: Sun Mar 21, 2004 5:25 pm

Re: Default Setup Suggestions

Post by madshi »

eberry wrote:The default error handling "send bug report" screens contain two checkboxes with a caption of "Some Text" and the inital exception handler dialog that shows does not contain the exception error message (often the parameter to the exception's constructor). I realize this stuff is configurable, but I think a more useful default screen setup would have more informative checkbox captions and would display the exception error message, instead of the more generic "An error occurred in the application", since the error message is often useful to diagnose problems and shouldn't be as hidden. It might also be better to have the default screens follow Windows conventions a bit more, by capitalizing the initial character of button captions.
The "Some Text" is a bug and should be fixed in the latest version madExcept 3.0a.

In my experience most end users don't care whether the program crashed with an access violation, an invalid pointer operation or with a division by zero. Such exception messages confuse the end user more than they help him. Of course there may be other kinds of exceptions where the exception message makes sense. E.g. if you have DB controls which raise exceptions when fields are filled with invalid content. But whether or not you have such exceptions varies from programmer to programmer. Personally I don't have such exceptions in any of my programs. Any exceptions I'm seeing are really bad exceptions, where the end user is better off by reading "An error occurred in the application" instead of the actual exception message.

For those exception classes where the actual exception message makes sense for the end user, I've added the "exception filter" tab in the madExcept settings. You can simply fill in there all those exception classes and the end user will see a normal looking dialog box with the full exception message instead of "An error occurred...". I think a good program should really differ between bad crashes on the one hand and between hints to the end user on the other hand. Bad crashes should be shown as "An error occurred..." and hints to the end user should be shown in a normal message box instead of in the full blown madExcept exception box. At least that's how I see it, and that's why I added the exception filters in madExcept 3.

Ok, the button captions. I've made them lower case because I find them much prettier that way. It's probably a matter of taste. Since I don't have any statistics about how many of the madExcept users would prefer lower versus upper case first characters in the button captions, I've set as default what I personally like best. And in those cases where I've seen other software crashing into a madExcept box, always the madExcept defaults were used (as far as I remember). So it seems to me that most people either like my defaults or at least don't feel the need to change them.

What do you think?
eberry
Posts: 13
Joined: Tue Oct 25, 2005 1:59 pm

Re: Default Setup Suggestions

Post by eberry »

The "Some Text" is a bug and should be fixed in the latest version madExcept 3.0a.
I downloaded from the release link announced in the borland newsgroups yesterday and I see this caption twice in a new project. It may not be the latest [beta, etc.] release, though.
Of course there may be other kinds of exceptions where the exception message makes sense.
I would estimate 80% of the error messages my users see have some useful info in them to diagnose the problem. I use errors to stop the flow of processing, not just in dire situations, so it may be errors about data entry, required fields, users forgetting something, etc. There are definitely users that are confused by every error, but I don't think users won't be a lot more confused by a slightly more verbose but accurate message text part of the time. I personally feel the benefits of showing the message for messages that make sense or for non-novice users are great, but I guess that is why it is configurable.

...sense for the end user, I've added the "exception filter" tab in the madExcept settings. You can simply fill in there all those exception classes

I guess the disadvantage here is that I need scan my source and then add the exceptions I use in my app. It seems most programmers don't create custom exception classes and always use Exception, though. :) Or I guess I can just catch them all with the last section in that screen.

...defaults were used (as far as I remember). So it seems to me that most people either like my defaults or at least don't feel the need to change them

I would guess most people (even programmers) don't don't have the energy to learn and to change defaults that are not fairly simple checkboxes (since they have lots of other things to worry about). But some people also think alternate UIs look cool. Anyway, you would know your users better than I do, but I have one opinion for you.

I personally want app defaults to minimize the work I have to do (customizations, tweaks, testing, enumerating), but I may work differently from the majority of your customers.
madshi
Site Admin
Posts: 10764
Joined: Sun Mar 21, 2004 5:25 pm

Re: Default Setup Suggestions

Post by madshi »

eberry wrote:I downloaded from the release link announced in the borland newsgroups yesterday and I see this caption twice in a new project. It may not be the latest [beta, etc.] release, though.
Probably your default settings are still "conterminated" from the old version. The bug has a kind of persistent nature... :? For newstarters with madExcept 3.0a it should be gone, though.
eberry wrote:I would estimate 80% of the error messages my users see have some useful info in them to diagnose the problem. I use errors to stop the flow of processing, not just in dire situations, so it may be errors about data entry, required fields, users forgetting something, etc.
Yeah, I understand. And I also understand that in your situation it makes sense to use %exceptMsg%. However, your programming style is just one of many. For my programming style (= madExcept boxes only for really bad exceptions) it makes more sense to use "An error occurred...". The problem for me is that I don't know how many people are using which programming style, so I can't decide which default I should be using to please the majority of customers.
eberry wrote:I would guess most people (even programmers) don't don't have the energy to learn and to change defaults that are not fairly simple checkboxes (since they have lots of other things to worry about). But some people also think alternate UIs look cool. Anyway, you would know your users better than I do, but I have one opinion for you.
Yes, and I appreciate your feedback!
eberry
Posts: 13
Joined: Tue Oct 25, 2005 1:59 pm

Post by eberry »

I uninstalled, deleted the madshi registry stuff, made sure the MadCollection directory was gone and reinstalled the latest web site release of MadExcept V3. I saved a new project into a new directory and no longer see the Some Text captions in the default exception handler.

Some little issues I saw were that I checked only MadExcept and MadBasic, but it also reports in a dialog after install it installed the MadDisAsm. Maybe that isn't necessary to note that it gets installed, since it is apparently just a required sub-part of MadExcept (and possibly others). At first I thought it accidentally installed three things even though I checked two, but then I saw MadDisAsm isn't a selectable option.

Also, the uninstall confirmation dialog doesn't list that I have installed (MadBasic and) MadExcept 3, but the listed the item to uninstall as MadExcept 2 (and MadBasic) for some reason. The uninstall still seems to work.
madshi
Site Admin
Posts: 10764
Joined: Sun Mar 21, 2004 5:25 pm

Post by madshi »

madDisAsm is a seperate package, which is required by both madExcept and madCodeHook. It was once available seperately, too, but not any longer. Maybe I should really remove it from the installation report, but I thought it wouldn't harm to still list it there.

You're definately right about the wrong "madExcept 2" name when uninstalling. I've noticed that myself already. Need to fix that.
Post Reply