<?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 for Andy Palmer</title>
	<atom:link href="http://andypalmer.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://andypalmer.com</link>
	<description>Views on software, technology, consulting and business process</description>
	<lastBuildDate>Fri, 16 Mar 2012 19:19:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>Comment on Returning &#8216;null&#8217; Considered Dishonest by Andy Palmer</title>
		<link>http://andypalmer.com/2008/08/returning-null-considered-dishonest/comment-page-1/#comment-1132</link>
		<dc:creator>Andy Palmer</dc:creator>
		<pubDate>Fri, 16 Mar 2012 19:19:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.andypalmer.com/blog/?p=9#comment-1132</guid>
		<description>I disagree (strongly) with the idea of exceptions being exceptional. They&#039;re actually a half-arsed implementation of &lt;a href=&quot;http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html&quot; rel=&quot;nofollow&quot;&gt;Lisp conditions&lt;/a&gt; (see &lt;a href=&quot;http://en.wikipedia.org/wiki/Greenspun&#039;s_tenth_rule&quot; rel=&quot;nofollow&quot;&gt;Greenspun&#039;s tenth rule&lt;/a&gt;)

I use exceptions when there is no point in the current logic path continuing. In the VendingMachine example, my friend &lt;a href=&quot;http://lunivore.com&quot; rel=&quot;nofollow&quot;&gt;Liz&lt;/a&gt; was able to write a Swing GUI that caught the exception and displayed it as an error message on the LCD display. Quite a result!To do that with return flags, I&#039;d have to check the return flag, and then probably return a return flag to my caller, who&#039;d have to return a return flag to his caller... and so on and so on.

Also, out parameters, by their very nature require mutable state... Not for me, thanks.
</description>
		<content:encoded><![CDATA[<p>I disagree (strongly) with the idea of exceptions being exceptional. They&#8217;re actually a half-arsed implementation of <a href="http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html?referer=');">Lisp conditions</a> (see <a href="http://en.wikipedia.org/wiki/Greenspun's_tenth_rule" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Greenspun_s_tenth_rule?referer=');">Greenspun&#8217;s tenth rule</a>)</p>
<p>I use exceptions when there is no point in the current logic path continuing. In the VendingMachine example, my friend <a href="http://lunivore.com" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/lunivore.com?referer=');">Liz</a> was able to write a Swing GUI that caught the exception and displayed it as an error message on the LCD display. Quite a result!To do that with return flags, I&#8217;d have to check the return flag, and then probably return a return flag to my caller, who&#8217;d have to return a return flag to his caller&#8230; and so on and so on.</p>
<p>Also, out parameters, by their very nature require mutable state&#8230; Not for me, thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Returning &#8216;null&#8217; Considered Dishonest by dragonlips</title>
		<link>http://andypalmer.com/2008/08/returning-null-considered-dishonest/comment-page-1/#comment-1131</link>
		<dc:creator>dragonlips</dc:creator>
		<pubDate>Fri, 16 Mar 2012 18:19:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.andypalmer.com/blog/?p=9#comment-1131</guid>
		<description>programming by exception for &quot;normal business logic&quot; is a bad idea.

This is a prime example of where a result flag + out params is appropriate.

bool GiveMeaDrink(out Drink)

So now you know if it&#039;s safe or not off one call. If you need to know why give some way to get that info. But really you&#039;re looking into the state of the vending machine at that point and it doesn&#039;t really need to tell you since you already know you were supposed to provide the adequate amount of money first.

You could argue that it&#039;s better to check state first then call. However that&#039;s only partially successful since it would fail in a threaded environment.

however the point is Exceptions are &quot;exceptional&quot; (hense the name) not &quot;normal&quot; you didn&#039;t give me enough money so you can&#039;t have a drink is not exceptional in anyway. You just need to learn how to count your change better.</description>
		<content:encoded><![CDATA[<p>programming by exception for &#8220;normal business logic&#8221; is a bad idea.</p>
<p>This is a prime example of where a result flag + out params is appropriate.</p>
<p>bool GiveMeaDrink(out Drink)</p>
<p>So now you know if it&#8217;s safe or not off one call. If you need to know why give some way to get that info. But really you&#8217;re looking into the state of the vending machine at that point and it doesn&#8217;t really need to tell you since you already know you were supposed to provide the adequate amount of money first.</p>
<p>You could argue that it&#8217;s better to check state first then call. However that&#8217;s only partially successful since it would fail in a threaded environment.</p>
<p>however the point is Exceptions are &#8220;exceptional&#8221; (hense the name) not &#8220;normal&#8221; you didn&#8217;t give me enough money so you can&#8217;t have a drink is not exceptional in anyway. You just need to learn how to count your change better.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Pomodoro, AppleScript and Adium by LS</title>
		<link>http://andypalmer.com/2009/07/pomodoro-applescript-and-adium/comment-page-1/#comment-1130</link>
		<dc:creator>LS</dc:creator>
		<pubDate>Sun, 11 Mar 2012 11:45:00 +0000</pubDate>
		<guid isPermaLink="false">http://andypalmer.com/?p=189#comment-1130</guid>
		<description>I tried the above but didn&#039;t work. I tried what Josh and Bobes suggested and it worked!

tell application &quot;Adium&quot; to go away with message &quot;Pomodoro in Progress&quot;

tell application &quot;Adium&quot; to go available

Thanks!</description>
		<content:encoded><![CDATA[<p>I tried the above but didn&#8217;t work. I tried what Josh and Bobes suggested and it worked!</p>
<p>tell application &#8220;Adium&#8221; to go away with message &#8220;Pomodoro in Progress&#8221;</p>
<p>tell application &#8220;Adium&#8221; to go available</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Finally, a use for checked exceptions by Andy Palmer</title>
		<link>http://andypalmer.com/2011/11/finally-a-use-for-checked-exceptions/comment-page-1/#comment-1126</link>
		<dc:creator>Andy Palmer</dc:creator>
		<pubDate>Fri, 18 Nov 2011 07:13:00 +0000</pubDate>
		<guid isPermaLink="false">http://andypalmer.com/?p=272#comment-1126</guid>
		<description>Good point. I have used Call Hierarchy, although when I read your comment, the idea that popped into my mind was &quot;debugging&quot;. 
I use &quot;Find references in workspace (&lt;ctrl&gt;&lt;shift&gt;g)&quot; a lot while refactoring (particularly while deleting code), but not Call Hierarchy. I&#039;m not sure why; I&#039;ll investigate that feeling next time I&#039;m doing something like this.

Also, yes, the point of this is to leverage the compiler to help make sure we&#039;ve removed all traces of the original null. I hate null checks within code I control, as that is indicative of a bad citizen (see &lt;a href=&quot;http://docs.codehaus.org/display/PICO/Good+Citizen&quot; rel=&quot;nofollow&quot;&gt;Good Citizen&lt;/a&gt;)</description>
		<content:encoded><![CDATA[<p>Good point. I have used Call Hierarchy, although when I read your comment, the idea that popped into my mind was &#8221;debugging&#8221;. <br />
I use &#8220;Find references in workspace (&lt;ctrl&gt;&lt;shift&gt;g)&#8221; a lot while refactoring (particularly while deleting code), but not Call Hierarchy. I&#8217;m not sure why; I&#8217;ll investigate that feeling next time I&#8217;m doing something like this.</p>
<p>Also, yes, the point of this is to leverage the compiler to help make sure we&#8217;ve removed all traces of the original null. I hate null checks within code I control, as that is indicative of a bad citizen (see <a href="http://docs.codehaus.org/display/PICO/Good+Citizen" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/docs.codehaus.org/display/PICO/Good+Citizen?referer=');">Good Citizen</a>)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Finally, a use for checked exceptions by Demian Alonso</title>
		<link>http://andypalmer.com/2011/11/finally-a-use-for-checked-exceptions/comment-page-1/#comment-1125</link>
		<dc:creator>Demian Alonso</dc:creator>
		<pubDate>Fri, 18 Nov 2011 01:29:00 +0000</pubDate>
		<guid isPermaLink="false">http://andypalmer.com/?p=272#comment-1125</guid>
		<description>Just a little contribution: Many ideas do have a way to search for references hierarchically. I now for sure that in Eclipse is called &quot;call hierarchy&quot;, but I am quite sure that on Idea is possible too, but I do not know the shortcuts :)

Still, the &quot;it won&#039;t compile&quot;  technic does prevent you from missing any case.</description>
		<content:encoded><![CDATA[<p>Just a little contribution: Many ideas do have a way to search for references hierarchically. I now for sure that in Eclipse is called &#8220;call hierarchy&#8221;, but I am quite sure that on Idea is possible too, but I do not know the shortcuts <img src='http://andypalmer.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Still, the &#8220;it won&#8217;t compile&#8221;  technic does prevent you from missing any case.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Finally, a use for checked exceptions by Andy Palmer</title>
		<link>http://andypalmer.com/2011/11/finally-a-use-for-checked-exceptions/comment-page-1/#comment-1124</link>
		<dc:creator>Andy Palmer</dc:creator>
		<pubDate>Thu, 17 Nov 2011 17:15:00 +0000</pubDate>
		<guid isPermaLink="false">http://andypalmer.com/?p=272#comment-1124</guid>
		<description>Good point. Although I would hope (for my sanity) that if there are catch everything blocks in the code, that they&#039;re doing something sensible and I don&#039;t need to go and change them at this point.
(I&#039;ll probably go and rip them out at the soonest opportunity though :-) )</description>
		<content:encoded><![CDATA[<p>Good point. Although I would hope (for my sanity) that if there are catch everything blocks in the code, that they&#8217;re doing something sensible and I don&#8217;t need to go and change them at this point.<br />
(I&#8217;ll probably go and rip them out at the soonest opportunity though <img src='http://andypalmer.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Finally, a use for checked exceptions by Andy Palmer</title>
		<link>http://andypalmer.com/2011/11/finally-a-use-for-checked-exceptions/comment-page-1/#comment-1123</link>
		<dc:creator>Andy Palmer</dc:creator>
		<pubDate>Thu, 17 Nov 2011 17:14:00 +0000</pubDate>
		<guid isPermaLink="false">http://andypalmer.com/?p=272#comment-1123</guid>
		<description>Yes, although the advantage of this method is that it propagates _beyond the direct usages_.
</description>
		<content:encoded><![CDATA[<p>Yes, although the advantage of this method is that it propagates _beyond the direct usages_.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Finally, a use for checked exceptions by Andy Palmer</title>
		<link>http://andypalmer.com/2011/11/finally-a-use-for-checked-exceptions/comment-page-1/#comment-1122</link>
		<dc:creator>Andy Palmer</dc:creator>
		<pubDate>Thu, 17 Nov 2011 17:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://andypalmer.com/?p=272#comment-1122</guid>
		<description>The advantage is that it highlights the direct and indirect usages of someMethod. Direct usages is obviously trivial, it&#039;s the indirect usages where the bugs usually lie.</description>
		<content:encoded><![CDATA[<p>The advantage is that it highlights the direct and indirect usages of someMethod. Direct usages is obviously trivial, it&#8217;s the indirect usages where the bugs usually lie.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Finally, a use for checked exceptions by Dileep Mandapam</title>
		<link>http://andypalmer.com/2011/11/finally-a-use-for-checked-exceptions/comment-page-1/#comment-1121</link>
		<dc:creator>Dileep Mandapam</dc:creator>
		<pubDate>Thu, 17 Nov 2011 16:28:00 +0000</pubDate>
		<guid isPermaLink="false">http://andypalmer.com/?p=272#comment-1121</guid>
		<description>I don&#039;t see any other advantage of this refactoring technique , other than finding usages of &quot;someMethod&quot;</description>
		<content:encoded><![CDATA[<p>I don&#8217;t see any other advantage of this refactoring technique , other than finding usages of &#8220;someMethod&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Finally, a use for checked exceptions by Ricky Clarkson</title>
		<link>http://andypalmer.com/2011/11/finally-a-use-for-checked-exceptions/comment-page-1/#comment-1120</link>
		<dc:creator>Ricky Clarkson</dc:creator>
		<pubDate>Thu, 17 Nov 2011 16:03:00 +0000</pubDate>
		<guid isPermaLink="false">http://andypalmer.com/?p=272#comment-1120</guid>
		<description>You&#039;ll need to remove all the catch (Exception e) and catch (Throwable t) instances that inevitably end up in large code bases precisely because of checked exceptions.</description>
		<content:encoded><![CDATA[<p>You&#8217;ll need to remove all the catch (Exception e) and catch (Throwable t) instances that inevitably end up in large code bases precisely because of checked exceptions.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

