Exceptions in Java are similar to an error message, but less severe. Java has both checked and unchecked exceptions. “An exception or exceptional event is an event that occurs during the execution of a program that disrupts the normal flow of instructions” (mit.edu, 2005). Common terminology regarding exceptions include terms such as “throw” and “raised” when an exception occurs. When an exception is handled, one might say the exception was “handled” or “caught”. Exceptions are used because the compilation process may not find all of the errors. In Java, a checked exception is an exception that will occur in code outside of the Java runtime system. These exceptions must be “caught” using “try-catch-finally” exception handling. Examples of checked exceptions include: FileNotFound, MalformedURL, and SocketException. The key difference between checked and unchecked exceptions in Java is that the unchecked exceptions occur during runtime of the system. There is no method that has to “catch” or specify the “throwing” of unchecked exceptions, although it may occur anyway. Examples of unchecked exceptions include: ArrayIndexOutOfBounds, NullPointerException, and IllegalArgumentException. It seems whether a programmer sides with usage of checked or unchecked exceptions is not very important, as they are both functionally equivalent. It would make sense that problems may occur if a programmer decides to use both checked and unchecked exceptions at the same time. Personally, it makes more sense to go with the checked exceptions. Unchecked exceptions seem slightly more problematic since the compiler does not make it mandatory to catch or propagate exceptions. With this in mind, it would seem that dealing with checked exceptions may be the path of relative ease.