A linguagem Java fornece o modelo de exceção para que os desenvolvedores podem lidar com situações em que a execução normal do programa der errado. Há muitas maneiras de um programa pode tomar um rumo inesperado , mas alguns tipos gerais de atividade são propensos a estas situações , como a entrada /saída , processamento com matrizes e alguns cálculos aritméticos . Ter uma compreensão de como lidar com exceções em seus programas Java é uma das competências-chave envolvidos em se tornar um desenvolvedor. Instruções
1
Crie seu programa Java, usando o seguinte esboço de sua classe eo método principal :
import java.io. *;
public class ExceptionDemo {
public static void main ( string [] args ) {
FileWriter fileOut = new FileWriter ( " OutputFile.txt ");
PrintWriter impressão = new PrintWriter ( fileOut ) ;
printOut.println ( "Texto a ser impresso para arquivo" );
printOut.close ();
fileOut.close ();
} }
Se você colar esse código em um IDE ( Integrated Development Environment) , que destaca erros de código , você vai ver que ele não vai mesmo ser capaz de compilar , porque há uma " exceção não tratada. " O método construtor FileWriter pode lançar uma exceção , por exemplo, se o arquivo que você tenha especificado não pode ser encontrado
2
Coloque o código com a exceção não tratada em um bloco "try " da seguinte forma: .
try {
FileWriter fileOut = new FileWriter ( " OutputFile.txt ");
PrintWriter impressão = new PrintWriter ( fileOut );
printOut.println ( " Texto a ser impresso para arquivo " );
printOut.close ();
fileOut.close (); }
Isso deve impedir que o compilador de reclamar sobre as linhas que estavam causando erros de exceção sem tratamento , mas vai criar um novo tipo de erro porque a " tentar" declaração ainda não está completa . O " tentar" declaração é, basicamente, um recipiente para o código que pode lançar uma exceção , mas você ainda tem que indicar o que deve acontecer se uma exceção é, de fato lançada.
3
Insira um " pegar " declaração da seguinte forma ( após o fechamento " tentar " suporte) :
captura
(IOException ioe ) { System.out.println
( " IOException ocorreu: "+ ioe.getMessage ( ) ); }
Isso deve ser suficiente para manter o compilador feliz, e vai permitir que você execute o seu programa. No entanto, tudo o que você tem feito é evitar que o programa deixe de funcionar se uma exceção é lançada neste momento. Dependendo dos detalhes de sua aplicação, você pode querer inserir outro código aqui para refletir o que está na sua " tentativa" do bloco, como que o código não terá sido executado. Assim que a exceção é lançada , a execução irá pular direto para o código de "catch" .
4
Adicionar manipuladores de exceção adicionais. Dependendo da natureza do seu programa , pode ser aconselhável incluir código diferente para tipos específicos de exceção. Por exemplo, antes do " IOException " manipulador você poderia incluir :
catch ( FileNotFoundException fnfe ) {
System.err.println ( " FileNotFoundException ocorreu: " + fnfe.getMessage ()) ;
}
Este é um tipo mais específico de erro do que o IOException , por isso, se a exceção lançada não é um FileNotFoundException , seu código irá saltar para a rotina de tratamento mais geral IOException vez . Encadeamento seus manipuladores de exceção , desta forma permite-lhe ditar exatamente o que deve acontecer para cada tipo de erro.