Exception is an error event that can occur during program execution and disrupt normal flow. Java provides try, catch, throw, throws and finally keywords to handle exceptions. try is used to mark code that might throw exceptions, catch handles exceptions, throw throws exceptions, throws declares exceptions a method can throw, and finally always executes. There are two categories of exceptions - checked exceptions which must be caught or declared thrown, and runtime exceptions which do not require handling.