Uma exceção, na programação, é um evento não planejado, como uma entrada inválida ou uma perda de conectividade, que ocorre enquanto um programa está executando e perturba o fluxo de suas instruções. Exception é uma forma curta de dizer evento excepcional.
Em Java, existem exceções como uma classe, java.lang.Exception, com duas subclasses principais, IOException e RuntimeException. Exceções verificadas ocorrem quando o programa é compilado; na maioria das vezes, o programa deve ser capaz de se recuperar dessas exceções. Estas podem ser coisas como FileNotFoundException, por exemplo, ou InvalidInputException. Código de tratamento de exceções pode ser escrito para lidar com o problema, para que o programa possa continuar.
Exceções não verificadas são eventos que não estão planejados, de modo que não são verificados no momento da compilação - acontecem quando o programa executa e normalmente não podem ser tratados. Uma exceção não verificada que não pode ser manuseada pelo programa é conhecida como uma exceção fatal porque força o sistema operacional a fechar o programa e possivelmente desliga o sistema inteiro. Um erro é um tipo de exceção desmarcada, embora existam outras.