O fenômeno anormal dos programas Java em execução é chamado de erros de execução. De acordo com sua natureza, ele pode ser dividido em duas categorias: erro (erro) e exceção (exceção); Eles têm uma classe pai comum (também a classe pai de nível superior de todas as exceções): jogável.
Estrutura de classe de exceção
Erro
O erro é gerado pela JVM e abandonado sem processamento; Esses erros geralmente não estão relacionados ao código e às operações executadas, e são problemas relativamente sérios na máquina virtual e não podem ser resolvidos pelo próprio programa (erros comuns incluem loops mortos, vazamentos de memória etc.).
Um erro comum é um erro de máquina virtual Java (VirtualMachineError). Quando a JVM não tiver mais os recursos de memória necessários para continuar a operação, um OrofMemoryError aparecerá. Quando essas exceções ocorrem, a Java Virtual Machine (JVM) geralmente escolhe encerrar os threads.
Exceção
A exceção é usada como objeto e é descartada ou processada por programas Java; Geralmente, as causas das exceções são: o código ou código de chamada está incorreto, os recursos do sistema operacional não estão disponíveis e a biblioteca de tempo de execução do idioma comum encontra um acidente;
Exceções são divididas em exceções de tempo de execução geradas por máquinas virtuais (RuntimeTeException, como indicadores nulos, matriz de limites) e exceções não intermediárias causadas por acidentes de programa (como a IOException);
Exceção de tempo de execução: o programa pode optar por capturar e processar ou jogá -lo diretamente sem processamento; As exceções comuns do tempo de execução incluem o excesso de algoritmo (excedendo a faixa de expressão numérica), o divisor é zero, transbordamento de memória, ponteiro nulo, parâmetros inválidos, etc. Tais exceções são erros de programação no próprio programa. Você pode ajustar a direção em execução do código de exceção para manter o programa em execução até que ele termine normalmente;
Exceção não-ruptura: Exceções inesperadas do tipo RuntimeException são chamadas de exceções que não são de áreas. Da perspectiva da sintaxe do programa, são exceções que devem ser processadas. Se eles não forem processados, o programa não poderá ser compilado e aprovado; Exceções que não são de águas comuns incluem a ioexception, como: arquivos de recursos não podem ser encontrados, etc., o que significa que o programa não pode ser executado com sucesso ao encontrar uma situação inesperada.
Nota: A diferença entre exceções e erros-as exceções podem ser tratadas pelo próprio programa, mas os erros não podem ser tratados.
Exceções verificáveis e não exceções verificáveis
As exceções de Java (ErrorAndExceptions) podem ser divididas em outras duas categorias, de acordo com se o programa pode ser compilado e aprovado: exceções verificadas e exceções desmarcadas.
Pode verificar exceções
Exceção pode ser verificada: correspondente a exceções não intermediárias, o compilador pode verificar os erros esperados ao compilar o programa. Esta exceção deve ser tratada. Existem duas maneiras de lidar com isso: a instrução Try-Catch captura a exceção ou a cláusula de arremesso declara que lançam uma exceção, e o tipo de exceção é declarado fora do cabeçalho do método (usando a exceção de arremessos) e o chamador pode optar por lidar com a exceção recebida.
Falando dessas duas maneiras de manuseio, precisamos falar sobre as 5 palavras -chave do manuseio de exceção de Java: tente, capturar, finalmente, lança, arremesso
1. Use a instrução Try-Catch para processar a captura (o cabeçalho do método não precisa ser declarado)
Os três blocos de declaração de tentativa, captura e finalmente não podem aparecer sozinhos. Os três podem ser combinados no Try-Catch/Try-Catch-Finally/Try-Finally.
Pode haver vários blocos de captura e, neste momento, um dos códigos de bloco de captura só pode ser correspondido de cima para baixo;
Finalmente, no máximo uma variável não é acessível um ao outro nos três blocos de declaração.
Nesta seção, a combinação de try-capath é usada para lidar com a exceção verificável, lançando a exceção para cima, exemplo:
public xmlReaderHdu (string xmlfile) {super (); this.xmlfile = xmlfile; this.filename = staticconfig.umlpathPrefixhdu; try {saxReader reader = new saxReader (); document com = reader.read.read (xmlfile); root = dom.getrootElement ();} catch (exceção e1) {handle1…} catch (exceção e2) {handle1)2. Cláusula de uso de arremessos para declarar arremesso (declare que o tipo de exceção de arremesso na cabeça fora do corpo do método: use laws para lançar exceção)
Primeiro, use arremesso dentro do corpo do método para lançar uma exceção;
Em seguida, o método é declarado fora da cabeça e joga a exceção lançada no interior usando lances;
Exemplo 1: Try-Catch joga uma exceção
public xmlReaderHdu (string xmlfile) lança exceção {super (); this.xmlfile = xmlfile; this.filename = staticconfig.umlpathPrefixhdu; try {saxReader reader = new saxReader (); document com = reader.read.read (xmlfile); root = dom.getrootElement ();} catch (exceção e1) {throw nova exceção (e1);}}}Exemplo 2: Exceção personalizada de arremesso
Lista privada <secase> readucinformation () lança exceção {if (e1.hascontent ()) {if (e1.Element ("name"). getText (). Equals ("pré -condição")) {uc.setprecondition (e1.ElementText ("conteúdo")); erro ");}}}Incapaz de verificar se há exceções
Exceções desmarcáveis: inclui erro de erro e exceção de tempo de execução RuntimeException
Exceções de tempo de execução podem ser aprovadas durante a compilação do programa. Não pode ser detectado através da sintaxe estática, quais funções podem lançar exceções. Somente quando a exceção é encontrada (ou seja, dependendo do estado de execução, ela é determinada pelo estado de tempo de execução);
Você pode optar por capturar o processamento ou exibir (MustBecaughordEdClearedToBethRown). Essas exceções geralmente são causadas por erros lógicos do programa, e os programas devem evitar tais exceções o máximo possível de uma perspectiva lógica.
Resumir
O exposto acima é sobre a análise do conhecimento básico das exceções de Java neste artigo, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!