I've been programming with ESRI's frameworks and SDKs for some time now and they seem quite powerful to me. However, there are time when I wish I didn't have this job and that's when I get one of ESRI's wonderful error messsages.
Every API should have a detailed documentation about what it does and what exception it may throw and how to recover from them. Currently even the newest SDK (for .NET in my case) doesn't even have API documentation included and most of the time any exception thrown is just an "error."
This must be fixed, because we developers are spending countless hours trying to figure out just what went wrong when the only information we have is "Error occured".
For example, a recent message I had: "Abort due to constraint violation". It cannot be that hard to include what constraint was violated? The framework surely knows this, so why it can't include it in the exception's message?
Or perhaps "Additional information: Item not found in the database. (Table, domain, relationship class, etc.) :", care to tell what item not found was and not list all the possible choices for the developer to test?
I'm suggesting that ESRI creates some error codes and every time an exception is thrown, you can look up the error code list and see what's going on and what measures to take to fix it.
In my opinion, no error message can be too detailed, so please feel free to include as much information as you can in them.
I agree, but of course it's a matter of resources. I try to practice what I preach though by using AddIDMessage in my Python scripts to leverage existing error messages (and of course support internationalization without any work on my part at all).