<?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: null Parameters and returning null</title>
	<atom:link href="http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/feed/" rel="self" type="application/rss+xml" />
	<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/</link>
	<description>by Java coders, for Java coders</description>
	<lastBuildDate>Tue, 07 Sep 2010 06:16:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: dirkmeister.de&#187;Blog Archive &#187; Null-Parameter und Rückgabe von null in Java</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-413</link>
		<dc:creator>dirkmeister.de&#187;Blog Archive &#187; Null-Parameter und Rückgabe von null in Java</dc:creator>
		<pubDate>Sun, 05 Aug 2007 18:38:29 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-413</guid>
		<description>&lt;p&gt;[...] guter Artikel über null als akzeptierter Methodenparamter und den Rückgabewert null in Java:  I am not a fan of [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[&#8230;] guter Artikel über null als akzeptierter Methodenparamter und den Rückgabewert null in Java:  I am not a fan of [&#8230;]</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Sam</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-30</link>
		<dc:creator>Sam</dc:creator>
		<pubDate>Thu, 10 May 2007 07:41:18 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-30</guid>
		<description>&lt;p&gt;Thanks Carsten...your excellent references&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://blogs.sun.com/tor/entry/code_advice_9_avoid_null&quot; rel=&quot;nofollow&quot;&gt;Tor Norbye&#039;s blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.cs.oberlin.edu/~jwalker/nullObjPattern/&quot; rel=&quot;nofollow&quot;&gt;Null Object Design Pattern&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;are absolutely spot on, although I would seriously contend the position that all &lt;code&gt;null&lt;/code&gt; values are errors... for example, people commonly use &lt;code&gt;null&lt;/code&gt; as a shorthand for &quot;not found&quot; (in the case of a &lt;code&gt;Map&lt;/code&gt;-backed class, or &quot;no more calls required&quot; in recursive methods, which most certainly aren&#039;t errors.&lt;/p&gt;

&lt;p&gt;btw, &lt;a href=&quot;http://blogs.sun.com/tor/entry/code_advice&quot; rel=&quot;nofollow&quot;&gt;Tor Norbye&#039;s coding advice&lt;/a&gt; is a fantastic find.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks Carsten&#8230;your excellent references</p>

<ul>
<li><a href="http://blogs.sun.com/tor/entry/code_advice_9_avoid_null" rel="nofollow">Tor Norbye&#8217;s blog</a></li>
<li><a href="http://www.cs.oberlin.edu/~jwalker/nullObjPattern/" rel="nofollow">Null Object Design Pattern</a></li>
</ul>

<p>are absolutely spot on, although I would seriously contend the position that all <code>null</code> values are errors&#8230; for example, people commonly use <code>null</code> as a shorthand for &#8220;not found&#8221; (in the case of a <code>Map</code>-backed class, or &#8220;no more calls required&#8221; in recursive methods, which most certainly aren&#8217;t errors.</p>

<p>btw, <a href="http://blogs.sun.com/tor/entry/code_advice" rel="nofollow">Tor Norbye&#8217;s coding advice</a> is a fantastic find.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Carsten Saager</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-29</link>
		<dc:creator>Carsten Saager</dc:creator>
		<pubDate>Thu, 10 May 2007 06:26:29 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-29</guid>
		<description>&lt;p&gt;See my website for my treatment of null return values. Throwing exceptions is pushing the problem from some (non-locatable) NPE to some  other (located) exception. But if null is not an error if find the use of an exception inappropriate. Much cleaner is the NullObject pattern that allows he caller not to care about possible &quot;missing data&quot; sitaution and thus makes the method much easier to use.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>See my website for my treatment of null return values. Throwing exceptions is pushing the problem from some (non-locatable) NPE to some  other (located) exception. But if null is not an error if find the use of an exception inappropriate. Much cleaner is the NullObject pattern that allows he caller not to care about possible &#8220;missing data&#8221; sitaution and thus makes the method much easier to use.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Frank Kelly</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-28</link>
		<dc:creator>Frank Kelly</dc:creator>
		<pubDate>Wed, 09 May 2007 19:41:15 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-28</guid>
		<description>&lt;p&gt;Totally agree - by avoiding returning null you avoid potential NPEs in your caller&#039;s code.  &lt;/p&gt;

&lt;p&gt;But where null does become an option is, as a previous commentator mentioned, when there&#039;s a database involved and the null could mean SQL null (as in no information in the DB)&lt;/p&gt;

&lt;p&gt;But apart from that I agree - one should check for null parameters in public methods and never return null from a method call&lt;/p&gt;

&lt;p&gt;-Frank&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Totally agree - by avoiding returning null you avoid potential NPEs in your caller&#8217;s code.  </p>

<p>But where null does become an option is, as a previous commentator mentioned, when there&#8217;s a database involved and the null could mean SQL null (as in no information in the DB)</p>

<p>But apart from that I agree - one should check for null parameters in public methods and never return null from a method call</p>

<p>-Frank</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Sam</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-27</link>
		<dc:creator>Sam</dc:creator>
		<pubDate>Tue, 08 May 2007 16:33:44 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-27</guid>
		<description>&lt;p&gt;raveman... if you copy Bruce&#039;s code into your codebase, then it means that you can catch runtime exceptions and then wrap them in &lt;code&gt;throw new ExceptionAdapter(e);&lt;/code&gt;. It does essentially what you&#039;re doing but in a lot less code and more generic :-).&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>raveman&#8230; if you copy Bruce&#8217;s code into your codebase, then it means that you can catch runtime exceptions and then wrap them in <code>throw new ExceptionAdapter(e);</code>. It does essentially what you&#8217;re doing but in a lot less code and more generic <img src='http://javablog.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>]]></content:encoded>
	</item>
	<item>
		<title>By: raveman</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-26</link>
		<dc:creator>raveman</dc:creator>
		<pubDate>Tue, 08 May 2007 12:53:40 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-26</guid>
		<description>&lt;p&gt;You can also recover from OutOfMemoryError :P When i think about checked exception i always think about SQLException or IOException. Your example is one of the cases when you can catch it, but what if you create files and you know they should be there and they arent for some reason-maybe bug or you cannot write to directory. SQLException is even better example ;)&lt;/p&gt;

&lt;p&gt;I just think that when you almost always need to catch exception and do something than it should be checked, but if not than it should be unchecked.&lt;/p&gt;

&lt;p&gt;How do you feel about IllegalArgumentException ? I think that exception teach you that you should remember about unchecked ;) you can always write in declaration &quot;throws IllegalArgumentException&quot;.&lt;/p&gt;

&lt;p&gt;P.S. Thanks for Bruce Eckel’s article, but its too complicated for me, i just do&lt;/p&gt;

&lt;p&gt;try {
    try {
        throw new FileNotFoundException();
    } catch (FileNotFoundException e) {
        throw new RuntimeException(e);
    }
} catch (Throwable e) {
    if (e.getClass().equals(RuntimeException.class)) {
        e.getCause().printStackTrace();
    }
}&lt;/p&gt;

&lt;p&gt;its simpler :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>You can also recover from OutOfMemoryError <img src='http://javablog.co.uk/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  When i think about checked exception i always think about SQLException or IOException. Your example is one of the cases when you can catch it, but what if you create files and you know they should be there and they arent for some reason-maybe bug or you cannot write to directory. SQLException is even better example <img src='http://javablog.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>I just think that when you almost always need to catch exception and do something than it should be checked, but if not than it should be unchecked.</p>

<p>How do you feel about IllegalArgumentException ? I think that exception teach you that you should remember about unchecked <img src='http://javablog.co.uk/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  you can always write in declaration &#8220;throws IllegalArgumentException&#8221;.</p>

<p>P.S. Thanks for Bruce Eckel’s article, but its too complicated for me, i just do</p>

<p>try {
    try {
        throw new FileNotFoundException();
    } catch (FileNotFoundException e) {
        throw new RuntimeException(e);
    }
} catch (Throwable e) {
    if (e.getClass().equals(RuntimeException.class)) {
        e.getCause().printStackTrace();
    }
}</p>

<p>its simpler <img src='http://javablog.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>By: Sam</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-25</link>
		<dc:creator>Sam</dc:creator>
		<pubDate>Tue, 08 May 2007 08:06:58 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-25</guid>
		<description>&lt;p&gt;Raveman, totally hear what you&#039;re saying about &lt;code&gt;null&lt;/code&gt; values in &lt;code&gt;Map&lt;/code&gt;s... but recently we&#039;ve been using database-backed &lt;code&gt;Map&lt;/code&gt; implementations and the look-up is much more costly than the &lt;code&gt;Map.containsKey()&lt;/code&gt; call. I would still never insert a &lt;code&gt;null&lt;/code&gt; as a value though, and have a hard time imagining a good use case. The only example I can think of would be as a cache, which would be best done with &lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Future.html&quot; rel=&quot;nofollow&quot;&gt;Future&lt;/a&gt; and &lt;a href=&quot;http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/WeakReference.html rel=&quot;nofollow&quot;&gt;WeakReference&lt;/a&gt;. It must have been important though, because they explicitly allowed &lt;code&gt;null&lt;/code&gt; when upgrading the old &lt;code&gt;HashTable&lt;/code&gt; and &lt;code&gt;Vector&lt;/code&gt; system to &lt;code&gt;Collections&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you don&#039;t like checked &lt;code&gt;Exception&lt;/code&gt;s, then check out &lt;code&gt;ExceptionAdapter&lt;/code&gt; on &lt;a href=&quot;http://www.mindview.net/Etc/Discussions/CheckedExceptions&quot; rel=&quot;nofollow&quot;&gt;Bruce Eckel&#039;s&lt;/a&gt; article. It allows you to wrap any checked &lt;code&gt;Exception&lt;/code&gt; into an unchecked &lt;code&gt;Exception&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;That said, I would have to disagree about unchecked &lt;code&gt;Exception&lt;/code&gt;s for IO issues though. I believe unchecked &lt;code&gt;Exception&lt;/code&gt;s should only be thrown when it is impossible to recover, or when a &lt;code&gt;class&lt;/code&gt; is implementing an &lt;code&gt;Interface&lt;/code&gt; that doesn&#039;t permit the kinds of &lt;code&gt;Exceptions&lt;/code&gt; you have, and you can&#039;t recover from it... indicating a major bug. In many cases it is possible to recover from an &lt;code&gt;IOException&lt;/code&gt;... prompt the user for another file, or go to the next file in a list and log it.&lt;/p&gt;

&lt;p&gt;We don&#039;t code by metrics, but I find checked &lt;code&gt;Exception&lt;/code&gt;s (when checked! not simply dropped) produce much more stable code. We had a situation recently where we had changed a checked &lt;code&gt;Exception&lt;/code&gt; into an unchecked one, and coded for a while. A week later, three unit tests started to fail. It wasn&#039;t until we went digging that we realised we forgot that the method threw the unchecked &lt;code&gt;Exception&lt;/code&gt;, and we&#039;d forgotten to catch it... all in the name of code cleanliness. It&#039;s these kinds of issues that prompted us to create this week&#039;s poll! :-)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Raveman, totally hear what you&#8217;re saying about <code>null</code> values in <code>Map</code>s&#8230; but recently we&#8217;ve been using database-backed <code>Map</code> implementations and the look-up is much more costly than the <code>Map.containsKey()</code> call. I would still never insert a <code>null</code> as a value though, and have a hard time imagining a good use case. The only example I can think of would be as a cache, which would be best done with <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Future.html" rel="nofollow">Future</a> and <a href=&#8221;http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/WeakReference.html rel=&#8221;nofollow&#8221;>WeakReference</a>. It must have been important though, because they explicitly allowed <code>null</code> when upgrading the old <code>HashTable</code> and <code>Vector</code> system to <code>Collections</code>.</p>

<p>If you don&#8217;t like checked <code>Exception</code>s, then check out <code>ExceptionAdapter</code> on <a href="http://www.mindview.net/Etc/Discussions/CheckedExceptions" rel="nofollow">Bruce Eckel&#8217;s</a> article. It allows you to wrap any checked <code>Exception</code> into an unchecked <code>Exception</code></p>

<p>That said, I would have to disagree about unchecked <code>Exception</code>s for IO issues though. I believe unchecked <code>Exception</code>s should only be thrown when it is impossible to recover, or when a <code>class</code> is implementing an <code>Interface</code> that doesn&#8217;t permit the kinds of <code>Exceptions</code> you have, and you can&#8217;t recover from it&#8230; indicating a major bug. In many cases it is possible to recover from an <code>IOException</code>&#8230; prompt the user for another file, or go to the next file in a list and log it.</p>

<p>We don&#8217;t code by metrics, but I find checked <code>Exception</code>s (when checked! not simply dropped) produce much more stable code. We had a situation recently where we had changed a checked <code>Exception</code> into an unchecked one, and coded for a while. A week later, three unit tests started to fail. It wasn&#8217;t until we went digging that we realised we forgot that the method threw the unchecked <code>Exception</code>, and we&#8217;d forgotten to catch it&#8230; all in the name of code cleanliness. It&#8217;s these kinds of issues that prompted us to create this week&#8217;s poll! <img src='http://javablog.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>By: raveman</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-24</link>
		<dc:creator>raveman</dc:creator>
		<pubDate>Tue, 08 May 2007 06:55:31 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-24</guid>
		<description>&lt;p&gt;I agree that throwing exception doesnt cost that much, I remind me of all the xml hate and how xml parsing is so slow that we should never use it :&gt; and ajax should be ajaH(TML), but ajax and SAO are doing good.&lt;/p&gt;

&lt;p&gt;In Map you have full control of what youre doing, i never use Map.containsKey() - i never needed it. If Map.get() returns null that means that it doesnt have the object that i wanted, i never want null from Map.&lt;/p&gt;

&lt;p&gt;maybe i return null because all the try-catch&#039;s make code look less readable(i hate checked exception because most of the time there should be unchecked exception - for example IOException should be unchecked(I always re-throw it or try to pass it to the method), FileNotFoundException also should be unchecked - if program fails when file is not found i dont care about catching this exception(i also never use it, because there is File.exist() method). However if your company is using metrics you should use checked exception more - because they produce more code(more code = less readable).&lt;/p&gt;

&lt;p&gt;i hate metrics because they produce bad code, why should anybody write clean code when the more you write the better you are?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I agree that throwing exception doesnt cost that much, I remind me of all the xml hate and how xml parsing is so slow that we should never use it :&gt; and ajax should be ajaH(TML), but ajax and SAO are doing good.</p>

<p>In Map you have full control of what youre doing, i never use Map.containsKey() - i never needed it. If Map.get() returns null that means that it doesnt have the object that i wanted, i never want null from Map.</p>

<p>maybe i return null because all the try-catch&#8217;s make code look less readable(i hate checked exception because most of the time there should be unchecked exception - for example IOException should be unchecked(I always re-throw it or try to pass it to the method), FileNotFoundException also should be unchecked - if program fails when file is not found i dont care about catching this exception(i also never use it, because there is File.exist() method). However if your company is using metrics you should use checked exception more - because they produce more code(more code = less readable).</p>

<p>i hate metrics because they produce bad code, why should anybody write clean code when the more you write the better you are?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Sam</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-23</link>
		<dc:creator>Sam</dc:creator>
		<pubDate>Mon, 07 May 2007 21:42:10 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-23</guid>
		<description>&lt;p&gt;Thanks for that &quot;x&quot;... although you do realise my example for &quot;when is it acceptable to return &lt;code&gt;null&lt;/code&gt;&quot; was exactly &lt;code&gt;Map.get()&lt;/code&gt;? However, note that in the case of &lt;code&gt;Map.get()&lt;/code&gt;, a &lt;code&gt;null&lt;/code&gt; return doesn&#039;t mean the key doesn&#039;t exist... it can mean the key doesn&#039;t exist or the value has actually been set to &lt;code&gt;null&lt;/code&gt;, you should really be using &lt;code&gt;Map.containsKey()&lt;/code&gt;, which really makes a difference if value-lookup is expensive (e.g. in a database).&lt;/p&gt;

&lt;p&gt;I&#039;d like to hear you elaborate on what you mean by &quot;normal processing&quot;... some people hate dealing with checked &lt;code&gt;Exception&lt;/code&gt;s and other people (like me) hate dealing with &lt;code&gt;null&lt;/code&gt; references. The problem with the former is that there is the temptation to ignore a checked &lt;code&gt;Exception&lt;/code&gt;, whereas with the latter the problem is in forgetting to deal with it and revisiting the code doesn&#039;t alert you to this.&lt;/p&gt;

&lt;p&gt;If the &lt;code&gt;null&lt;/code&gt; return value is actually a signal to an exceptional case (as you rightly point out), then I don&#039;t see why an &lt;code&gt;Exception&lt;/code&gt; shouldn&#039;t be used, as it avoids unwelcome &lt;code&gt;null&lt;/code&gt;s hanging around.&lt;/p&gt;

&lt;p&gt;As a side note, the performance overhead in throwing an &lt;code&gt;Exception&lt;/code&gt; is so low these days that I wouldn&#039;t even consider it an issue unless it was a mission critical class that was being used extensively in computational code. Life is too short to worry about optimisation at this level, unless you have a performance problem and profiling has pinned it down.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for that &#8220;x&#8221;&#8230; although you do realise my example for &#8220;when is it acceptable to return <code>null</code>&#8221; was exactly <code>Map.get()</code>? However, note that in the case of <code>Map.get()</code>, a <code>null</code> return doesn&#8217;t mean the key doesn&#8217;t exist&#8230; it can mean the key doesn&#8217;t exist or the value has actually been set to <code>null</code>, you should really be using <code>Map.containsKey()</code>, which really makes a difference if value-lookup is expensive (e.g. in a database).</p>

<p>I&#8217;d like to hear you elaborate on what you mean by &#8220;normal processing&#8221;&#8230; some people hate dealing with checked <code>Exception</code>s and other people (like me) hate dealing with <code>null</code> references. The problem with the former is that there is the temptation to ignore a checked <code>Exception</code>, whereas with the latter the problem is in forgetting to deal with it and revisiting the code doesn&#8217;t alert you to this.</p>

<p>If the <code>null</code> return value is actually a signal to an exceptional case (as you rightly point out), then I don&#8217;t see why an <code>Exception</code> shouldn&#8217;t be used, as it avoids unwelcome <code>null</code>s hanging around.</p>

<p>As a side note, the performance overhead in throwing an <code>Exception</code> is so low these days that I wouldn&#8217;t even consider it an issue unless it was a mission critical class that was being used extensively in computational code. Life is too short to worry about optimisation at this level, unless you have a performance problem and profiling has pinned it down.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: x</title>
		<link>http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/comment-page-1/#comment-22</link>
		<dc:creator>x</dc:creator>
		<pubDate>Mon, 07 May 2007 21:37:43 +0000</pubDate>
		<guid isPermaLink="false">http://javablog.co.uk/2007/05/07/null-parameters-and-returning-null/#comment-22</guid>
		<description>&lt;p&gt;It&#039;s perfectly acceptable for methods to return null if it&#039;s part of the normal processing.  Exceptions are very expensive and should only be used for...  well, exceptional cases.&lt;/p&gt;

&lt;p&gt;For example, not finding a key in a map is perfectly acceptable and part of the Map contract (it&#039;s also quite frequent).  Throwing an exception there would be an abuse.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>It&#8217;s perfectly acceptable for methods to return null if it&#8217;s part of the normal processing.  Exceptions are very expensive and should only be used for&#8230;  well, exceptional cases.</p>

<p>For example, not finding a key in a map is perfectly acceptable and part of the Map contract (it&#8217;s also quite frequent).  Throwing an exception there would be an abuse.</p>]]></content:encoded>
	</item>
</channel>
</rss>
