Error vs Exception

One of the most difficult parts of programming languages is to know the difference between Error and Exception. I used to get confused a lot about this. So, to help my mates to overcome this problem, I thought of writing a blog on it. After a long time experimenting, I have decided to write this blog in a table fashion(sounds odd, but easy to understand). Here you go.

What is an Exception?

An exception is an event that occurs during the execution of a program that disrupts the normal flow of instructions during the execution of a program.

What is an Error?

Errors are the mistakes or faults in the program that causes the program to behave unexpectedly.

Types of Exception

Exception: Most languages throw an exception at run-time except java. Java provides two types of exceptions. Let's see them.

Checked Exception: Checked exceptions are known to the compiler and must handle at compile time.

Unchecked Exception: These errors are not checked at runtime.

Types of Error

Compile Time Error/ Syntax Error: Common syntactical mistakes in the code.

Run Time Error: Run time errors that are caused by the environment in which the program is running.

Logical Error: Mistakes in the logical flow of the program.

Here comes the Point of Confusion :

  • Only confusion is between run-time errors and exceptions.
  • An exception is something that interrupts the normal flow of the program.
  • Something exceptional has happened within the program which should be handled to run the program uninterruptedly.
  • An exception that can be handled even in the compile-time in a language like java while that is not true in the case of run-time error.
  • Most of the run-time errors caused by the environment in which the application is running.
  • An error must be resolved. You simply cannot ignore them.

Exception

  • They are caused by the program itself.
  • Null reference exception is when the program tries to access the property of the null object.
  • You can recover from the exceptions by handling them through try-catch classes.
  • It is recommended to handle exceptions in the program.

Error(Run-Time)

  • Errors are mostly caused by the environment in which the application is running.
  • OutOfMemoryError occurs when JVM runs out of memory or StackOverFlow error occurs when stack overflows.
  • You cannot recover the program from the error. So, you must resolve the error.

Examples of Exception

  • NullPointerException
  • ArrayIndexOutOfBoundException
  • IOException

Example of Errors

  • OutOfMemoryError

Summary

  • So, Exception is not a run-time error.
  • There is a clear difference between errors and exceptions in a language like java.
  • Different languages interpret error differently.

That's a wrap. Share your thoughts in the comment section. Connect with me on Twitter for more awesome content.

27