<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx</link><description>It has become clear to me recently that we could be doing a better job with exception messages. I took these guidelines from a set that the UE team on the .NET Framework uses. Love to hear your comments, issues, and suggestions. 7.3.2 Exception Error</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64271</link><pubDate>Thu, 29 Jan 2004 07:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64271</guid><dc:creator>Alan McBee</dc:creator><description>What I think would be more helpful would be if the exception always carried some kind of identifier (yes, I know it's a pain to uniqueify those) that allowed me to quickly query on all KB articles, or google for pages that discuss solutions. The uniquer, the better. (Don't throw a dictionary at me, please.) I've spent too many times trying to find the KB article for an error by the text of the error message, only to find the answer in a newsgroup where the error message was misttyped by someone who couldn't cut&amp;amp;paste the exception message from the dialog box/offending web page.&lt;br&gt;-&amp;gt;A</description></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64275</link><pubDate>Thu, 29 Jan 2004 07:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64275</guid><dc:creator>RichB</dc:creator><description>Any chance you could encourage the IE team to use this advice too. According to this KB article, a new patch to IE preventing username-prefixed URLs and will display the following error message:&lt;br&gt;&lt;br&gt;Invalid syntax error&lt;br&gt;&lt;br&gt;&lt;a target="_new" href="http://support.microsoft.com/default.aspx?id=834489"&gt;http://support.microsoft.com/default.aspx?id=834489&lt;/a&gt;</description></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64279</link><pubDate>Thu, 29 Jan 2004 08:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64279</guid><dc:creator>Pavel Lebedinsky</dc:creator><description>&amp;gt; Do localize exception messages&lt;br&gt;&lt;br&gt;I'm probably in the minority here, but I disagree with that.&lt;br&gt;&lt;br&gt;When you talk about &amp;quot;users&amp;quot;, do you mean end users, programmers, IT/support people or somebody else?&lt;br&gt;&lt;br&gt;For end users, it's going to be a horrible user experience if you start showing them raw exception messages, translated or not. No matter what the guidelines say, there will always be components that use bad/cryptic messages so the best approach for end user applications is to display their own localized errors for exceptions that the application recognizes, and a generic error dialog for everything else. This dialog could have a &amp;quot;Technical Details...&amp;quot; button that would show things like description and stack trace (which for troubleshooting purposes is just as useful as description, if not more).&lt;br&gt;&lt;br&gt;For programmers and other technical people localized messages are mostly an annoyance (I'm not a native English speaker so I have some first hand experience with this). To be able to program in .NET you need to understand things like class names anyway, so it's very unlikely you will have problems understanding exception messages.&lt;br&gt;&lt;br&gt;However when you need to troubleshoot a problem for a user and all you have is a Russian exception message from the user's computer, it's very unlikely that MS KB search (or even google) will tell you anything.&lt;br&gt;&lt;br&gt;Also, what about situations like remoting where exceptions can be raised by server code and handled by clients who have different language settings?&lt;br&gt;&lt;br&gt;May be it would be useful to have something like an optional interface that could be used to extract user-friendly, localized descriptions from an exception object, but I think that forcing all exceptions to be localized is wrong.</description></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64368</link><pubDate>Thu, 29 Jan 2004 14:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64368</guid><dc:creator>Ken Brubaker</dc:creator><description>Identifier&lt;br&gt;&lt;br&gt;I specify the use of identifiers for exceptions in my application architectures. But such a requirement is probably best left at the application/enterprise level rather than the base system level. The only reasonable way to have globally unique error codes would be to use guids, but they would be very difficult to communicate on a support call or KB-type look up.</description></item><item><title>New exception message guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64371</link><pubDate>Thu, 29 Jan 2004 17:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64371</guid><dc:creator>Ken Brubaker</dc:creator><description /></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64381</link><pubDate>Thu, 29 Jan 2004 14:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64381</guid><dc:creator>Micael Baerens</dc:creator><description>What about a guideline about allways specifying which resource caused the exception, if any?&lt;br&gt;&lt;br&gt;So instead of:&lt;br&gt;&amp;quot;File was not found.&amp;quot;&lt;br&gt;&lt;br&gt;then:&lt;br&gt;&amp;quot;File 'c:\myfile.txt' was not found.&amp;quot;&lt;br&gt;&lt;br&gt;It makes it a lot easier to troubleshoot.</description></item><item><title>Design guidelines from Microsoft</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64403</link><pubDate>Thu, 29 Jan 2004 18:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64403</guid><dc:creator>James Geurts' Blog</dc:creator><description /></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64409</link><pubDate>Thu, 29 Jan 2004 15:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64409</guid><dc:creator>Brad Abrams</dc:creator><description>Alan -- yes an identifier is a good idea, I will pass on the suggestion. Although, Ken's point may pan out to be the only way..&lt;br&gt;&lt;br&gt;Rich -- I hear you!  I will pass on these guidelines (and your comments) to the IE team..&lt;br&gt;&lt;br&gt;Pavel raises a good point -- The messages are mainly for developers, do you other developers feel like they want english only messages.  The remotting\admin issue is a god one, maybe Alan's ID plan could help?&lt;br&gt;&lt;br&gt;Micael has a good point, *if* you are going to put out a file name putting it in quotes is fine.  But I will point out that could cause a security issue by giving out PII (Personally Idenitifable Information) such as user name to untrusted callers&lt;br&gt;</description></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64535</link><pubDate>Thu, 29 Jan 2004 19:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64535</guid><dc:creator>Jason Nadal</dc:creator><description>In RE: Do not personify (imply that programs think or feel). &lt;br&gt;&lt;br&gt;I believe the term you are looking for is anthropomorphize (Although Word does think they're synonyms).  Great list.&lt;br&gt;&lt;br&gt;I'd also suggest not showing compiler errors to the user. For example, something like &amp;quot;a connection couldn't be made to a requested resource&amp;quot; instead of &amp;quot;resource error: object reference not set to an instance of an object&amp;quot;.</description></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#64550</link><pubDate>Thu, 29 Jan 2004 20:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:64550</guid><dc:creator>Jerry Pisk</dc:creator><description>As for IE refusing to use user name and password in a URL with &amp;quot;Invalid Syntax Error&amp;quot; - not only is the message cryptic, it's not even true - that syntax is valid as far as URLs go, it's just that IE decided not to support it.</description></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#65148</link><pubDate>Fri, 30 Jan 2004 18:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:65148</guid><dc:creator>Ken Brubaker</dc:creator><description>Localization&lt;br&gt;&lt;br&gt;I have written a framework to support different languages that interops with the event log API the way it wants to (It also supports multiple languages). It would be alot easier to dump that support, frankly. There IS one area where it is important, though.&lt;br&gt;&lt;br&gt;I agree that end users should not see the errors: All consumer code oriented exceptions should be translated by the UI layer -- another reason to require an identifier. However, internal exceptions have TWO audiences, not just developers. Most internal errors get logged somewhere so that a sysop can look at them. Sometimes it it a coding problem and simply gets passed along to the developers. However some internal errors, i.e. non-consumer code errors, are environmentally driven and is the responibility of the IS admin to fix. These SHOULD be in the language of the installation culture.</description></item><item><title>New and Notable 36</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#68644</link><pubDate>Fri, 06 Feb 2004 17:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:68644</guid><dc:creator>Sam Gentile's Blog</dc:creator><description /></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#68649</link><pubDate>Fri, 06 Feb 2004 14:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:68649</guid><dc:creator>Jeff Gonzalez</dc:creator><description>I have a question, how was the decision for these 2 classes ctor parameters made...&lt;br&gt;&lt;br&gt;Constructor for ArgumentNullException&lt;br&gt;public ArgumentNullException( string paramName, string message)&lt;br&gt;&lt;br&gt;Constructor for ArgumentException&lt;br&gt;public ArgumentException( string message, string paramName)&lt;br&gt;&lt;br&gt;</description></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#69102</link><pubDate>Sat, 07 Feb 2004 04:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:69102</guid><dc:creator>SBC</dc:creator><description>Provide extended messages (for certain exception types) -&lt;br&gt;for e.g.,&lt;br&gt;Also see KB Article: Q12345 or 76543:Info&lt;br&gt;(with the numerical code containing the hyperlink as a link label)</description></item><item><title>Exception Error Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#73600</link><pubDate>Mon, 16 Feb 2004 11:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:73600</guid><dc:creator>William.Blog()</dc:creator><description /></item><item><title>A compilation of new .NET Design Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#77087</link><pubDate>Fri, 20 Feb 2004 18:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:77087</guid><dc:creator>Ken Brubaker</dc:creator><description>For my own reference, I thought I'd compile a quick list of design guidelines added by Brad Abrams, et al.</description></item><item><title>Microsoft Design Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#82101</link><pubDate>Mon, 01 Mar 2004 20:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:82101</guid><dc:creator>James Geurts' Blog</dc:creator><description /></item><item><title>More Design Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#83945</link><pubDate>Thu, 04 Mar 2004 21:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:83945</guid><dc:creator>ExplosiveDog.Com</dc:creator><description /></item><item><title>re: Design Guidelines Update: Exception Message Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#85147</link><pubDate>Sat, 06 Mar 2004 13:22:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:85147</guid><dc:creator>Thomas Eyde</dc:creator><description>I had an SMTP mail issue in ASP.NET the other day. Try a search on 'Transporten kan ikke koble til serveren' or something like that, actual wording is forgotten. If I had the English equivalent 'The transport failed to connect to the server' it would be so much easier. I found it by coincidence when I searched on something else.&lt;br&gt;&lt;br&gt;So localized system messages is not very helpful. I am a developer and didn't understand it, I don't think any local users would do either. Which comittee thought this was a good idea, anyway?</description></item><item><title>New and Notable 36</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#88532</link><pubDate>Fri, 12 Mar 2004 16:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:88532</guid><dc:creator>Sam Gentile's Blog</dc:creator><description /></item><item><title>Custom Base Exception Class</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#97225</link><pubDate>Sat, 27 Mar 2004 06:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:97225</guid><dc:creator>Mark Treadwell</dc:creator><description /></item><item><title>Custom Base Exception Class</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#106059</link><pubDate>Fri, 02 Apr 2004 04:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:106059</guid><dc:creator>Mark Treadwell</dc:creator><description /></item><item><title>Custom Base Exception Class - V1 (VB)</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#437197</link><pubDate>Sun, 10 Jul 2005 06:21:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:437197</guid><dc:creator>.NET Hobbyist Programmer</dc:creator><description /></item><item><title>More Design Guidelines</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#1462980</link><pubDate>Sun, 14 Jan 2007 01:30:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1462980</guid><dc:creator>ExplosiveDog.Com</dc:creator><description>&lt;p&gt;I was looking at BradA's blog again today and I saw his annotations for proper exception messages. This&lt;/p&gt;
</description></item><item><title>Methods In Excel &amp;raquo;  HumanComputer Interfaces. Problems with messaging - Part 3</title><link>http://blogs.msdn.com/brada/archive/2004/01/28/64255.aspx#1741004</link><pubDate>Thu, 22 Feb 2007 13:34:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1741004</guid><dc:creator>Methods In Excel »  HumanComputer Interfaces. Problems with messaging - Part 3</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www.blog.methodsinexcel.co.uk/2007/02/22/humancomputer-interfaces-problems-with-messaging-part-3/"&gt;http://www.blog.methodsinexcel.co.uk/2007/02/22/humancomputer-interfaces-problems-with-messaging-part-3/&lt;/a&gt;&lt;/p&gt;
</description></item></channel></rss>