O que é um manipulador de exceção em Java?

Em Java, as exceções são uma das muitas estruturas que controlam o fluxo de controle de um programa. Especificamente, são efeitos colaterais não intencionais da execução normal de um programa. Ao escrever código que pode encontrar exceções, o programador deve definir novas instruções para o programa se encontrar uma exceção, um processo conhecido como "manipulação de exceção". Manipuladores de exceção são feitos de três blocos distintos: tente, capture e finalmente.

Exceções Java

Quando um programa chama um método que se comporta de maneira inesperada, diz-se que encontrou uma "exceção". Por exemplo, se o programa tentar dividir um número por zero ou carregar um arquivo que não existe, o programa pode não se comportar como esperado e lançará uma exceção para sinalizar esse erro. Se um método é definido para lançar uma exceção no corpo do método, você só pode invocá-lo dentro de um manipulador de exceções - ou passar o erro para a árvore declarando que o método que o invoca também lança a mesma exceção.

Tente blocos

Em um manipulador de exceção bem-sucedido, o método que lança a exceção deve estar contido em um bloco "try", como em "try {exceptionThrowingMethod ();}" Depois que o bloco try é definido, o programador define os blocos catch que capturam os métodos de exceção contido no lance do bloco try.

Catch Blocks

Um único bloco try pode ter vários blocos "catch" para definir diferentes comportamentos quando uma exceção é encontrada. Se um programa encontrar uma exceção definida em vários blocos de captura, ele executará o primeiro bloco de captura primeiro. Como todas as exceções descendem da classe de exceção, isso significa que se o seu primeiro bloco de captura for "catch (Exception e) {}", um programa sempre executará esse bloco quando encontrar uma exceção e nunca qualquer um dos outros. Organize seus blocos de captura do mais específico para o menos específico, se você quiser um controle refinado sobre o seu programa.

Finalmente Blocos

Um bloco "finalmente" é um componente opcional de um manipulador de exceções. Use-o para definir o comportamento que deve sempre ser executado mesmo se uma exceção for encontrada. Isso é necessário em alguns casos, porque você não pode garantir que a última parte do bloco try seja executada. Se uma exceção for lançada e capturada, esse bloqueio será interrompido nesse ponto. Por exemplo, colocar "InputStream.close ()" em um bloco finally garante que, independentemente de uma exceção lançada anteriormente no código, seus fluxos serão fechados com segurança.

Publicações Populares