<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Fail Fast or Degrade Gracefully?</title>
	<atom:link href="http://www.basilv.com/psd/blog/2006/fail-fast-or-degrade-gracefully/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.basilv.com/psd/blog/2006/fail-fast-or-degrade-gracefully</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 03:57:22 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: David Gingrich</title>
		<link>http://www.basilv.com/psd/blog/2006/fail-fast-or-degrade-gracefully/comment-page-1#comment-43703</link>
		<dc:creator>David Gingrich</dc:creator>
		<pubDate>Fri, 22 Feb 2008 17:02:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.basilv.com/psd/blog/2006/fail-fast-or-degrade-gracefully#comment-43703</guid>
		<description>I try to do something like what &lt;a href=&quot;http://beautifulcode.oreillynet.com/2007/12/error_handling_the_practice_we.php&quot; rel=&quot;nofollow&quot;&gt;Michael Feather&#039;s&lt;/a&gt; describes: a fail-fast core that can be wrapped for higher level functions.  Starting with fail fast seems like the right thing to start with since it catches bugs before your code is mature and, let&#039;s face it, is much easier to write.  

When I do add error handling, it&#039;s normally via Python decorators as &lt;a href=&quot;http://ndanger.org/blog/2008/01/16/error-handling-in-python-monads-are-too-much-for-me/&quot; rel=&quot;nofollow&quot;&gt;described  on my blog&lt;/a&gt;.

Another solution is a catch-all error handler that logs the error (or emails, etc.) for developer knowledge and gives the user a &quot;error occured: watch out!&quot; message.  The handler would have to be robust (so you don&#039;t hide errors) and flexible (since you&#039;ll probably want to customize the error message depending on the failure, etc.).  It might also end up fairly specific to the project since you don&#039;t want to write to stdout in a web-app or try to send email from your embedded miro-controller.  As such it doesn&#039;t seem worth it for small apps.

Of course writing the handler to be both robust--you don&#039;t want to miss errors after all--and flexible</description>
		<content:encoded><![CDATA[<p>I try to do something like what <a href="http://beautifulcode.oreillynet.com/2007/12/error_handling_the_practice_we.php" rel="nofollow">Michael Feather&#8217;s</a> describes: a fail-fast core that can be wrapped for higher level functions.  Starting with fail fast seems like the right thing to start with since it catches bugs before your code is mature and, let&#8217;s face it, is much easier to write.  </p>
<p>When I do add error handling, it&#8217;s normally via Python decorators as <a href="http://ndanger.org/blog/2008/01/16/error-handling-in-python-monads-are-too-much-for-me/" rel="nofollow">described  on my blog</a>.</p>
<p>Another solution is a catch-all error handler that logs the error (or emails, etc.) for developer knowledge and gives the user a &#8220;error occured: watch out!&#8221; message.  The handler would have to be robust (so you don&#8217;t hide errors) and flexible (since you&#8217;ll probably want to customize the error message depending on the failure, etc.).  It might also end up fairly specific to the project since you don&#8217;t want to write to stdout in a web-app or try to send email from your embedded miro-controller.  As such it doesn&#8217;t seem worth it for small apps.</p>
<p>Of course writing the handler to be both robust&#8211;you don&#8217;t want to miss errors after all&#8211;and flexible</p>
]]></content:encoded>
	</item>
</channel>
</rss>

