Course: Software Construction – Discussion 3

Java was one of the first languages to introduce a robust exception handling mechanism. All Java exceptions can be categorized into two buckets: Checked exceptions and Unchecked exceptions. Checked exceptions are those checked by the compiler to make sure that either that a programmer has provided an exception handler to handle the exception or at the least reclaimed that the checked exception can happen. On the other hand, unchecked exceptions are not checked by the compiler.

For a number of years, there has been a debate about the benefits and liabilities of checked exceptions. The signature of every method would list all of the exceptions that it could pass to its caller. But programmers questions whether are even necessary for writing robust software. In fact the creators of C#, Ruby and Python did away with checked exceptions.

Research the Internet on this topic and discuss the benefits and limitations of having checked exceptions and provide your informed opinion on this.