<?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: Voting for Checked Exceptions</title>
	<atom:link href="http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/feed/" rel="self" type="application/rss+xml" />
	<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/</link>
	<description>Longer than a blog; shorter than a book</description>
	<lastBuildDate>Wed, 08 Feb 2012 21:45:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: Tuyen Tran</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-4/#comment-480149</link>
		<dc:creator>Tuyen Tran</dc:creator>
		<pubDate>Thu, 06 May 2010 04:42:56 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-480149</guid>
		<description>I think Elliotte is arguing from a theoretical perspective, but I will take it head on anyway. (And I apologize in advance if this is just a rehash of points already made in this two-year-running discussion; I free admit I read the beginning, and the end, but not the middle. However, I did at least read the article Elliotte mentioned.) The presence of checked exceptions in Java makes it impossible to express the idea that an interface can throw any exception, without resorting to ugliness. Language design is all out trade-offs, and interfaces are one the things that Java almost got right, and I&#039;d rather have expressive interfaces than checked exceptions. 

Now to step into the trenches: the ugliness is precisely because in actual practice, defensive coding in Java means that callers of an interface must guard against it throwing unchecked exceptions anyway -- the caller also typically has a contract it must uphold. And as a practical matter, Elliotte&#039;s article dealt with one rather contrived example -- the caller controlled both the implementation of the interface and the data the interface is applied to. Real systems don&#039;t have this luxury, making it impractical to use the techniques Elliotte outlined. A simple example is the simple callback interface. What are you going to do if the implementation does something that throws a RemoteException? Are you really going to make every such interface declare its own checked exception? 

As for the crash-only software idea, the answer is yes, you do want a program or thread to shut down just because DNS lookup failed transiently, but not if the language is Java.</description>
		<content:encoded><![CDATA[<p>I think Elliotte is arguing from a theoretical perspective, but I will take it head on anyway. (And I apologize in advance if this is just a rehash of points already made in this two-year-running discussion; I free admit I read the beginning, and the end, but not the middle. However, I did at least read the article Elliotte mentioned.) The presence of checked exceptions in Java makes it impossible to express the idea that an interface can throw any exception, without resorting to ugliness. Language design is all out trade-offs, and interfaces are one the things that Java almost got right, and I&#8217;d rather have expressive interfaces than checked exceptions. </p>
<p>Now to step into the trenches: the ugliness is precisely because in actual practice, defensive coding in Java means that callers of an interface must guard against it throwing unchecked exceptions anyway &#8212; the caller also typically has a contract it must uphold. And as a practical matter, Elliotte&#8217;s article dealt with one rather contrived example &#8212; the caller controlled both the implementation of the interface and the data the interface is applied to. Real systems don&#8217;t have this luxury, making it impractical to use the techniques Elliotte outlined. A simple example is the simple callback interface. What are you going to do if the implementation does something that throws a RemoteException? Are you really going to make every such interface declare its own checked exception? </p>
<p>As for the crash-only software idea, the answer is yes, you do want a program or thread to shut down just because DNS lookup failed transiently, but not if the language is Java.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elliotte Rusty Harold</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-478353</link>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
		<pubDate>Wed, 28 Apr 2010 10:26:49 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-478353</guid>
		<description>Actually I wrote a &lt;a href=&#039;http://www.ibm.com/developerworks/java/library/j-ce/index.html&#039; rel=&quot;nofollow&quot;&gt;whole article&lt;/a&gt; about exactly what to do when you want to implement an interface method that doesn’t throw the exception. Short version: if an interface doesn&#039;t declare that it can throw a checked exception then you are not justified in doing anything within that method that can let such an exception bubble up, wrapped in a runtime exception or otherwise. Adding an exception the interface doesn&#039;t declare is as bad as changing the return type. The compiler tries to keep you from doing this for good reason. When the compiler tells you what you want to do isn&#039;t possible, that&#039;s a very big sign that you shouldn&#039;t be doing it. It is not an opportunity to hack around the problem.

Crash-only software is an interesting idea to respond programs that have thoroughly wedged themselves due to programming errors. However that&#039;s appropriate for algorithmic flaws inside a program. Robust programs don&#039;t let themselves get into illegal states in the first place. Environmental problems such as I/O errors are completely expected and need to be dealt with without bringing down the application or even a thread. For instance, do you want a program or even a thread to shut down just because a DNS lookup failed transiently?</description>
		<content:encoded><![CDATA[<p>Actually I wrote a <a href='http://www.ibm.com/developerworks/java/library/j-ce/index.html' rel="nofollow">whole article</a> about exactly what to do when you want to implement an interface method that doesn’t throw the exception. Short version: if an interface doesn&#8217;t declare that it can throw a checked exception then you are not justified in doing anything within that method that can let such an exception bubble up, wrapped in a runtime exception or otherwise. Adding an exception the interface doesn&#8217;t declare is as bad as changing the return type. The compiler tries to keep you from doing this for good reason. When the compiler tells you what you want to do isn&#8217;t possible, that&#8217;s a very big sign that you shouldn&#8217;t be doing it. It is not an opportunity to hack around the problem.</p>
<p>Crash-only software is an interesting idea to respond programs that have thoroughly wedged themselves due to programming errors. However that&#8217;s appropriate for algorithmic flaws inside a program. Robust programs don&#8217;t let themselves get into illegal states in the first place. Environmental problems such as I/O errors are completely expected and need to be dealt with without bringing down the application or even a thread. For instance, do you want a program or even a thread to shut down just because a DNS lookup failed transiently?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tuyen Tran</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-478301</link>
		<dc:creator>Tuyen Tran</dc:creator>
		<pubDate>Wed, 28 Apr 2010 03:18:43 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-478301</guid>
		<description>Wow, is there still an argument that checked exception were a mistake?

Elliotte keeps missing something: you can&#039;t always have a method propagate an exception by declaring that it throws the exception. An obvious example is when the method implements an interface method that doesn&#039;t throw the exception. The only way to get an exception propagated past the interface-method-doesn&#039;t-throw-the-error is to wrap it inside a RuntimeException. That alone should convince people that checked exceptions are a flaw in the language. 

(And please don&#039;t argue that the interface method was badly specified -- the interface can&#039;t predict which checked exceptions will be thrown. And declaring the interface method to throw Exception is just hideous, and is an argument against checked exceptions.)

Robust code is all about dealing with errors, whatever the errors, checked or unchecked. In practice this means making sure that you release resources or maintain state -- such code uses try/finally and hardly ever try/catch. In the vast majority of cases, the only code that cares about the actual exception is the outer most loop, and it only cares about the exception because it wants to log the exception. And there in lies the problem with checked exceptions. I will submit that the most important thing to do with an exception is to log it, and checked exceptions are all too often swallowed. You can argue that exceptions shouldn&#039;t be swallowed, but just stating it won&#039;t make it so.

I will close by adding that actually trying to deal with errors is so passe. Ever heard of crash-only software? You think telecom software is written in Java? Think again.</description>
		<content:encoded><![CDATA[<p>Wow, is there still an argument that checked exception were a mistake?</p>
<p>Elliotte keeps missing something: you can&#8217;t always have a method propagate an exception by declaring that it throws the exception. An obvious example is when the method implements an interface method that doesn&#8217;t throw the exception. The only way to get an exception propagated past the interface-method-doesn&#8217;t-throw-the-error is to wrap it inside a RuntimeException. That alone should convince people that checked exceptions are a flaw in the language. </p>
<p>(And please don&#8217;t argue that the interface method was badly specified &#8212; the interface can&#8217;t predict which checked exceptions will be thrown. And declaring the interface method to throw Exception is just hideous, and is an argument against checked exceptions.)</p>
<p>Robust code is all about dealing with errors, whatever the errors, checked or unchecked. In practice this means making sure that you release resources or maintain state &#8212; such code uses try/finally and hardly ever try/catch. In the vast majority of cases, the only code that cares about the actual exception is the outer most loop, and it only cares about the exception because it wants to log the exception. And there in lies the problem with checked exceptions. I will submit that the most important thing to do with an exception is to log it, and checked exceptions are all too often swallowed. You can argue that exceptions shouldn&#8217;t be swallowed, but just stating it won&#8217;t make it so.</p>
<p>I will close by adding that actually trying to deal with errors is so passe. Ever heard of crash-only software? You think telecom software is written in Java? Think again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lucq</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-471156</link>
		<dc:creator>Lucq</dc:creator>
		<pubDate>Thu, 25 Mar 2010 11:16:09 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-471156</guid>
		<description>Sorry, the last sentence above should read: &quot;Can the &lt;i&gt;checked&lt;/i&gt; group describe a situation where that solution does not work?&quot;</description>
		<content:encoded><![CDATA[<p>Sorry, the last sentence above should read: &#8220;Can the <i>checked</i> group describe a situation where that solution does not work?&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elliotte Rusty Harold</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-471154</link>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
		<pubDate>Thu, 25 Mar 2010 11:01:14 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-471154</guid>
		<description>Yes, you&#039;ve missed something, which people keep missing. A caller does &lt;strong&gt;not&lt;/strong&gt; have to catch a checked exception. If it can&#039;t handle the exception, it just has to declare that it throws the exception. People keep misunderstanding this. 

The point of checked exceptions is to prevent unpredictable environmental conditions from being ignored. The checked exceptions camp wants to force developers to acknowledge and deal with these unpreventable situations. We&#039;ve learned from brutal experience that we cannot count on programmers to properly check for sporadic error conditions. We want to make it inconvenient and painful to ignore problems because that leads to robust software.

The unchecked exception camp basically says, &quot;Trust Us. We&#039;ll handle the problem anyway&quot; but the reality is otherwise. The problems that checked exceptions indicate--file not found, network failures, etc.--must be handled in both cases, with or without checked exceptions. The code you write in both cases to properly handle the underlying problem is identical. The only reason to make an IOException a checked exception instead of a runtime exception is so that programmers are reminded to handle the problem. The only reason to make an IOException a runtime exception instead of a checked exception is so that programmers can ignore the problem and write failure-prone software.</description>
		<content:encoded><![CDATA[<p>Yes, you&#8217;ve missed something, which people keep missing. A caller does <strong>not</strong> have to catch a checked exception. If it can&#8217;t handle the exception, it just has to declare that it throws the exception. People keep misunderstanding this. </p>
<p>The point of checked exceptions is to prevent unpredictable environmental conditions from being ignored. The checked exceptions camp wants to force developers to acknowledge and deal with these unpreventable situations. We&#8217;ve learned from brutal experience that we cannot count on programmers to properly check for sporadic error conditions. We want to make it inconvenient and painful to ignore problems because that leads to robust software.</p>
<p>The unchecked exception camp basically says, &#8220;Trust Us. We&#8217;ll handle the problem anyway&#8221; but the reality is otherwise. The problems that checked exceptions indicate&#8211;file not found, network failures, etc.&#8211;must be handled in both cases, with or without checked exceptions. The code you write in both cases to properly handle the underlying problem is identical. The only reason to make an IOException a checked exception instead of a runtime exception is so that programmers are reminded to handle the problem. The only reason to make an IOException a runtime exception instead of a checked exception is so that programmers can ignore the problem and write failure-prone software.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lucq</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-471152</link>
		<dc:creator>Lucq</dc:creator>
		<pubDate>Thu, 25 Mar 2010 10:42:56 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-471152</guid>
		<description>We are in the situation where we can influence our vendor and request changes to the programming language we are using.  Recently we have been debating whether to add Java-style checked exceptions.  I read all of these posts, plus many from elsewhere.  Amazing and depressing.  There are two camps poles apart, both absolutely sure of their correctness. 

However, I noticed that all people who said they were in one camp and switched to the other - they all switched in the same direction - from using checked exceptions to not using them.  Have I missed something - has someone switched in the opposite direction?

Basically, (help me if I haven&#039;t understood it correctly) the unchecked exception group says that it is not necessary to force every exception to be caught by its caller. They say it is enough to have a single spot somewhere high in the call hierarchy to catch all exceptions, regardless what type they are. Also, they can choose to catch any particular exception earlier if they want to.

The checked exception group say that the caller has to catch them. It is free to rethrow them if it doesn&#039;t want to deal with them, but it still has to catch them. 

So, the unchecked group has an alternative solution that they claim works. Can the unchecked group describe a situation where that solution does not work?

Cheers</description>
		<content:encoded><![CDATA[<p>We are in the situation where we can influence our vendor and request changes to the programming language we are using.  Recently we have been debating whether to add Java-style checked exceptions.  I read all of these posts, plus many from elsewhere.  Amazing and depressing.  There are two camps poles apart, both absolutely sure of their correctness. </p>
<p>However, I noticed that all people who said they were in one camp and switched to the other &#8211; they all switched in the same direction &#8211; from using checked exceptions to not using them.  Have I missed something &#8211; has someone switched in the opposite direction?</p>
<p>Basically, (help me if I haven&#8217;t understood it correctly) the unchecked exception group says that it is not necessary to force every exception to be caught by its caller. They say it is enough to have a single spot somewhere high in the call hierarchy to catch all exceptions, regardless what type they are. Also, they can choose to catch any particular exception earlier if they want to.</p>
<p>The checked exception group say that the caller has to catch them. It is free to rethrow them if it doesn&#8217;t want to deal with them, but it still has to catch them. </p>
<p>So, the unchecked group has an alternative solution that they claim works. Can the unchecked group describe a situation where that solution does not work?</p>
<p>Cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pp</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-462356</link>
		<dc:creator>pp</dc:creator>
		<pubDate>Thu, 11 Feb 2010 16:24:20 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-462356</guid>
		<description>HI,

Nice comments... we must begin with  &quot;an error is an error&quot; in any language, waht can be done whe someone delete alll records in a table ? mmm ... Maybe another confussion is that in Java some programmesr trend to use them as an business validation .. I mean, some one uses &quot;throw exception&quot; to inform that the password was wrong .....

Uses checked or unchecked exceptions don&#039;t guarantee that you have a robust application .. we are human, we make mistake. Using cehcked exception tell us what we must not forget... but ... I watched a lot of code with try{ ... }catch(Exception e){ null; } (senior java, maybe a little tired) ... trying to prevent to manage the error ... It&#039;s no nice, it is better let&#039;s flows the real error.

I repeat we are not working with geniouses we work with real guys, with personal problems and another issues,  our mission it&#039;s to help them,,.. My position, I really hate to use checked exception ... I repeat, an error is an error no way treat with them ..

I don&#039;t know, how much experience has Harold with other language (C, ADA, Lips, Cobol) and building real applications?, where you must be &quot;quick&quot; and go live soon as posible, when you must fight wiht legacy code ....  to use a checked exception and don&#039;t forget to catch every error in the system could be a nightmare code ?? I think (with respect), Harol is a great theorical guy, who can teach and write great books.. 

With Respect.</description>
		<content:encoded><![CDATA[<p>HI,</p>
<p>Nice comments&#8230; we must begin with  &#8220;an error is an error&#8221; in any language, waht can be done whe someone delete alll records in a table ? mmm &#8230; Maybe another confussion is that in Java some programmesr trend to use them as an business validation .. I mean, some one uses &#8220;throw exception&#8221; to inform that the password was wrong &#8230;..</p>
<p>Uses checked or unchecked exceptions don&#8217;t guarantee that you have a robust application .. we are human, we make mistake. Using cehcked exception tell us what we must not forget&#8230; but &#8230; I watched a lot of code with try{ &#8230; }catch(Exception e){ null; } (senior java, maybe a little tired) &#8230; trying to prevent to manage the error &#8230; It&#8217;s no nice, it is better let&#8217;s flows the real error.</p>
<p>I repeat we are not working with geniouses we work with real guys, with personal problems and another issues,  our mission it&#8217;s to help them,,.. My position, I really hate to use checked exception &#8230; I repeat, an error is an error no way treat with them ..</p>
<p>I don&#8217;t know, how much experience has Harold with other language (C, ADA, Lips, Cobol) and building real applications?, where you must be &#8220;quick&#8221; and go live soon as posible, when you must fight wiht legacy code &#8230;.  to use a checked exception and don&#8217;t forget to catch every error in the system could be a nightmare code ?? I think (with respect), Harol is a great theorical guy, who can teach and write great books.. </p>
<p>With Respect.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elliotte Rusty Harold</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-432431</link>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
		<pubDate>Tue, 18 Aug 2009 19:54:38 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-432431</guid>
		<description>MalformedURLException is a checked exception because it reflects whether the running VM has the right protocol handler installed. One VM can throw a MalformedURLException for a URL for which another VM won&#039;t. There is no way to guarantee at compile whether the code that constructs a java.net.URL will or will not throw  an exception. 

SQLException is a checked exception because the SQL string is evaluated by the database server (or the JDBC driver), and different servers accept different dialects of SQL. Again, you can&#039;t tell at compile time whether the exception will or will not occur.  Therefore SQLException is properly a checked exception. 

URISyntaxException is one Sun got wrong. It should be a runtime exception because it doesn&#039;t depend on the environment in which it executes and it can be verified at compile time. Basically it&#039;s a type of IllegalArgumentException like NumberFormatException. However, it isn&#039;t. It&#039;s a checked exception. That&#039;s simply a mistake.</description>
		<content:encoded><![CDATA[<p>MalformedURLException is a checked exception because it reflects whether the running VM has the right protocol handler installed. One VM can throw a MalformedURLException for a URL for which another VM won&#8217;t. There is no way to guarantee at compile whether the code that constructs a java.net.URL will or will not throw  an exception. </p>
<p>SQLException is a checked exception because the SQL string is evaluated by the database server (or the JDBC driver), and different servers accept different dialects of SQL. Again, you can&#8217;t tell at compile time whether the exception will or will not occur.  Therefore SQLException is properly a checked exception. </p>
<p>URISyntaxException is one Sun got wrong. It should be a runtime exception because it doesn&#8217;t depend on the environment in which it executes and it can be verified at compile time. Basically it&#8217;s a type of IllegalArgumentException like NumberFormatException. However, it isn&#8217;t. It&#8217;s a checked exception. That&#8217;s simply a mistake.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: constv</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-432424</link>
		<dc:creator>constv</dc:creator>
		<pubDate>Tue, 18 Aug 2009 19:26:00 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-432424</guid>
		<description>&quot;With that being sad I do not see checked exceptions being taken away from Java anytime soon as it would clash millions of lines of code.&quot;

I am not so sure. If the Exception class is re-factored to become &quot;unchecked&quot;, the existing code (that now successfully compiles) should still continue to work in the same manner. It&#039;s just that billions of lines of today&#039;s code that are wasted on catching and re-throwing will become redundant (in those cases when the programmer is indeed trying to properly propagate a checked exception instead of mishandling it way before it reaches the place where it should and can be properly handled.)

Also, here&#039;s the more accurate link to the article I mentioned in the previous post:
http://constv.blogspot.com/2009/08/error-handling-and-exceptions-in-java.html</description>
		<content:encoded><![CDATA[<p>&#8220;With that being sad I do not see checked exceptions being taken away from Java anytime soon as it would clash millions of lines of code.&#8221;</p>
<p>I am not so sure. If the Exception class is re-factored to become &#8220;unchecked&#8221;, the existing code (that now successfully compiles) should still continue to work in the same manner. It&#8217;s just that billions of lines of today&#8217;s code that are wasted on catching and re-throwing will become redundant (in those cases when the programmer is indeed trying to properly propagate a checked exception instead of mishandling it way before it reaches the place where it should and can be properly handled.)</p>
<p>Also, here&#8217;s the more accurate link to the article I mentioned in the previous post:<br />
<a href="http://constv.blogspot.com/2009/08/error-handling-and-exceptions-in-java.html" rel="nofollow">http://constv.blogspot.com/2009/08/error-handling-and-exceptions-in-java.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: constv</title>
		<link>http://cafe.elharo.com/blogroll/voting-for-checked-exceptions/comment-page-3/#comment-432419</link>
		<dc:creator>constv</dc:creator>
		<pubDate>Tue, 18 Aug 2009 19:14:41 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/voting-for-checked-exceptions/#comment-432419</guid>
		<description>The author expresses a very strong opinion - specifically, stating that anyone who is against checked exceptions doesn&#039;t understand the difference between checked and unchecked, but states that he doesn&#039;t have time to explain that very difference. Instead, as many checked exception zealots, he hides behind a book by a respectable author. In other words, &quot;checked exceptions may not be a bad idea because the authors of Java said that they are good, and who are we to argue with the Gods?&quot; (By the way, the newer specs from Sun, such as EJB 3.x, DO NOT contain checked exceptions. Need any more hints?) The opinion is based on the lack of understanding of what exceptions (the original concept!) are for, in the first place.  Checked exceptions are, perhaps, the worst and the most dangerous feature ever introduced in a programming language. I have never - I mean, ever! - seen checked exceptions being used properly. They always introduce chaos and cause essential error information to be lost.  It is much easier to design clean and reliable error handling with runtime exceptions only than to ensure the correct propagation and handling of checked exceptions. The sad reality is that it has become an EGO issue for those cocky programmers and architects who have failed to see the flaws of checked exceptions for years, and now are getting ticked off by other people pointing at it. For most such people it;s just a matter of pride and unwillingness to admit that they used to do it the wrong way. I have been programming in Java for over 10 years, and originally had bought into the checked hype. It took me some time (as well as some excellent advice/insight from a brilliant co-worker) to see the truth for myself, and to admit that I had been missing the point.  Amazingly, it doesn&#039;t take much to make perfect sense of exceptions (and I mean UNchecked ones.)   I have written an article on the subject where I honestly attempted to analyze the role of exceptions in error handling, the difference between checked and unchecked exceptions, and the benefits (if any) and flaws of the &quot;checked&quot; concept.  The article can be found here:
  
http://constv.blogspot.com/

Hope that helps someone.</description>
		<content:encoded><![CDATA[<p>The author expresses a very strong opinion &#8211; specifically, stating that anyone who is against checked exceptions doesn&#8217;t understand the difference between checked and unchecked, but states that he doesn&#8217;t have time to explain that very difference. Instead, as many checked exception zealots, he hides behind a book by a respectable author. In other words, &#8220;checked exceptions may not be a bad idea because the authors of Java said that they are good, and who are we to argue with the Gods?&#8221; (By the way, the newer specs from Sun, such as EJB 3.x, DO NOT contain checked exceptions. Need any more hints?) The opinion is based on the lack of understanding of what exceptions (the original concept!) are for, in the first place.  Checked exceptions are, perhaps, the worst and the most dangerous feature ever introduced in a programming language. I have never &#8211; I mean, ever! &#8211; seen checked exceptions being used properly. They always introduce chaos and cause essential error information to be lost.  It is much easier to design clean and reliable error handling with runtime exceptions only than to ensure the correct propagation and handling of checked exceptions. The sad reality is that it has become an EGO issue for those cocky programmers and architects who have failed to see the flaws of checked exceptions for years, and now are getting ticked off by other people pointing at it. For most such people it;s just a matter of pride and unwillingness to admit that they used to do it the wrong way. I have been programming in Java for over 10 years, and originally had bought into the checked hype. It took me some time (as well as some excellent advice/insight from a brilliant co-worker) to see the truth for myself, and to admit that I had been missing the point.  Amazingly, it doesn&#8217;t take much to make perfect sense of exceptions (and I mean UNchecked ones.)   I have written an article on the subject where I honestly attempted to analyze the role of exceptions in error handling, the difference between checked and unchecked exceptions, and the benefits (if any) and flaws of the &#8220;checked&#8221; concept.  The article can be found here:</p>
<p><a href="http://constv.blogspot.com/" rel="nofollow">http://constv.blogspot.com/</a></p>
<p>Hope that helps someone.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

