Informática, Programación
Java: excepcións ea súa manipulación
Calquera programa executarase de forma estable só se o código fonte é depurado, e non existen condicións que poden causar situacións imprevistas. O proceso de captura de posibles erros se realiza na fase de programación. Para iso, o creador ten en conta todos os resultados esperados e os intentos de limitar o efecto do erro para que non podería interferir co funcionamento do programa, ou levar ao seu colapso.
Cando se pode ter de tratamento de excepción
En Java, unha excepción pode ser causada pola entrada do usuario incorrecto, non hai necesidade dun recurso ou programa de desconexión da rede súbita. Para un uso cómodo creado polo creador da aplicación, ten que controlar a aparición de situacións de emerxencia. O consumidor non debe ter que esperar a saír dunha aplicación, a perda de datos como resultado unha excepción non tratada, ou só parte dunha mensaxe amósase informando que algo deu mal.
Tratamento de excepcións Java
O que considerar? A linguaxe Java ten a súa propia función de manipulación de excepción embutido. Por suposto, unha grande porcentaxe de erro é capturado por outra fase de compilación, o sistema notificar automaticamente que o uso non é posible. Pero hai este tipo de excepción que ocorre en tempo de execución. O creador debe ser capaz de anticipar e proxectar o código para que non causar un erro, e lidou con iso dun xeito especial e pasou a orde a outro sector.
En Java, esta é imposta polo compilador para facer unha excepción, así que os problemas típicos son coñecidos e teñen patróns de exercicio por defecto.
exclusións típicos
O exemplo máis simple, en que pode obter unha excepción - esta división. A pesar da súa sinxeleza, en termos, como un divisor, pode ser cero, o que resultará un erro. Ben, se é posible prever a aparición do pasado e evitar. Pero esta opción non sempre está dispoñible, polo que captura a excepción debe ser organizado directamente en caso de "dividir por cero".
O mecanismo Java para interceptar erro de procesamento coma este:
- obxecto excepción pila é creado, así como calquera outro;
- o curso natural do programa é interrompida;
- mecanismo de exclusión está intentando atopar unha forma alternativa para seguir o código;
- Buscar unha execución segura do programa no procesador, traballo ou restaurada, ou terá lugar realización de excepción dun xeito especial.
O exemplo máis simple de crear un erro pode ter esta aparencia:
se (un nulo ==)
throw new NullPointerException ();
Aquí, a variable a comprobouse no arranque, é dicir, non é a referencia a un obxecto nulo. Se esta situación xurdiu e precisa de tratamento especial, unha excepción é lanzada por un tramo novo NullPointerException ().
Poucos detalles sobre palabras clave
Ao tratar con excepcións é moitas veces necesario usar a palabra chave Java para referirse a unha acción particular. Esta linguaxe de súa programación cinco:
- Proba. Esta palabra chave está xa coñeceu, e iso supón unha transición cara a unha sección de código que pode lanzar unha excepción. Bloque claves limitados {}.
- Catch. El intercepta o tipo de excepción desexado e manipula-lo adecuadamente.
- Finalmente. Esta palabra chave é opcional e se usa para executar un determinado anaco de código, que se esixe de calquera xeito, aínda que ningunha excepción non se detecta. Engadido directamente despois bloque try.
- Throw - permite crear excepcións Java dende calquera lugar.
- Lanza - unha palabra clave que colócase na sinatura do método. Isto significa que o código a seguir poden lanzar unha excepción deste tipo Java. Esta marca serve como un sinal para os desenvolvedores que teñen que ter en conta - o método non pode funcionar como esperaba del.
Catching cunha tentativa
Release to excepcións Java, por suposto asume que serán tratadas dun xeito especial. O xeito máis cómodo de facelo, a sección de código está rodeada nun bloque. Que pode conter unha excepción. Ao executar este código, a máquina virtual atoparás unha situación inesperada, entender que hai un bloque crítico e traslada o control para a estación co procesamento.
O código Java é envolto nun bloque try especial, dentro do cal pode ser unha excepción. Así, el puxo varias situacións imprevistas que serán capturados no mesmo lugar, non o código raspolzayas.
O código máis típico para a unidade de procesamento é a seguinte:
try {
// Aquí está o código que pode xerar unha excepción
} Catch (identifikator_1 Tip_isklyucheniya_1) {
// Aquí non é a manipulación de excepción, segundo o seu tipo e condicións;
} Catch (identifikator_2 Tip_isklyucheniya_2) {
// Aquí non é a manipulación de excepción, segundo o seu tipo e condicións;
}
prendedor contrasinal informa que o código, e dixitalizar a imaxe a unha excepción, sendo tratada, como se describe a continuación, sempre que de conformidade co seu tipo. O identificador pode utilizarse no procesamento do bloque de código como argumentos.
finalmente
Cando se fixo evidente a partir do capítulo anterior, os bloques catch capturar excepcións e proceso-los. Pero moitas veces a situación xorde onde debe realizar un código, independentemente de se foron capturados erros. Para iso, hai o contrasinal, por fin. El é usado para aumentar os valores dos distintos contadores, pechando arquivos ou conexións de rede.
Este terreo presenta varios bloques catch inventou métodos capturar excepcións. Por exemplo, o código contido no intento xera unha situación inesperada como Fría. Logo a consola aparecerá expresión «Caught frío!» E «Isto é algo para festexar?». É dicir, o bloque finally é executado en calquera caso.
De feito, un xeito de evitar desencadear finalmente alí. Está conectado coa conclusión da máquina virtual. Atopa como implementar lo, é posible nos espazos abertos de Internet.
contrasinal throw
Lanzamento xera unha excepción. A súa sintaxe é a seguinte:
throw new NewException ();
Non créase unha nova excepción co tipo NewException (). Como un tipo se pode usar xa está incluído nas clases da biblioteca Java estándar e previamente definido polo creador da súa propia produción.
Este proxecto forma parte da descrición de calquera método, o cal a chamada debe, entón, ocorrer dentro do bloque try, a fin de ser capaz de interceptalo.
Contrasinal xoga
E se no proceso de desenvolvemento dunha situación en que o método pode lanzar unha excepción, pero non son capaces de tratar adecuadamente. Para este fin, na sinatura do método especifica a palabra lanza o tipo de posibles excepcións.
Esta etiqueta é unha especie de indicador para desenvolvedores de clientes que o método non é capaz de xestionar a súa mesma excepción. Ademais, se o tipo de erro é marcada, entón o compilador pode forzar explicitamente preguntar a el.
Probe recursos
Os desenvolvedores Java versión 7 incluíron unha gran innovación, como un bloque try tratamento con recursos.
Moitos obxectos son creados en Java, tras o seu uso debe ser desactivado para conservar os recursos. Anteriormente, el tivo que ter en conta e deixar estas instancias manual. Agora, con todo, eles apareceron de interface AutoClosable. Ela axuda a pechar automaticamente obxectos xa usados colocados nun bloque try. A través desta visión tornouse máis cómodo para escribir código na súa lexibilidade é significativamente aumentada.
clases propias excepcións Java
Os creadores da linguaxe de programación descrito tivo en conta moitos aspectos dos tipos de deseño de emerxencias. Con todo, todas as opcións para evitar que o resultado dos eventos non vai funcionar, entón en Java aplicado a capacidade de establecer as súas propias excepcións, é axeitado para as necesidades do código particular.
O xeito máis sinxelo de crear - para herdar o máis adecuado ao contexto de obxecto.
Non aconteceu para herdar de excepción, a clase que se usa para definir as súas propias excepcións. En MyException ten dous construtores - un defecto, o segundo - co argumento cadea tipo msg.
A continuación, no f método FullConstructors clase pública aplicado, que contén a sinatura lanza MyException. Esta palabra chave significa que f pode xogar como excepción Java MyException. Ademais, no corpo do método produciu información saída de texto para o propio consola eo MyException actual xeración, por tiro.
O segundo método é un pouco diferente do primeiro que cando se crea unha excepción, é pasado un parámetro de cadea, que será reflectido no console na captura. No principal é evidente que f () e g) son colocadas (nunha comprobación de intento e captura clave configurado para capturar MyException. O resultado do procesamento é amosar unha mensaxe de erro para a consola:
Así, el veu para engadir excepcións Java, pola súa propia man.
excepcións Arquitectura
Igual que todos os obxectos en Java, excepcións tamén son herdadas e teñen unha estrutura xerárquica. O elemento raíz de todos os erros publicados nesta linguaxe de programación é a clase java.lang.Throwable. Herdado de lle dous tipos - erro e de excepción.
Erro - sinaliza o erro crítico e excepcións Java desmarcada. Secuestro e tratamento de tales datos na maioría dos casos ocorre na fase de deseño e non na necesidade de introducir o código de aplicación final.
A clase máis comunmente usado para crear e analizar as excepcións é excepción. Que, á súa vez, divídese en varios ramos, incluíndo RuntimeException. Por RuntimeException excepcións de tempo de execución, é dicir, que se producen durante o programa. Todos os graos derivadas dela non son verificábeis.
Moitas veces, hai excepcións
En excepcións Java, cuxa lista amósase a continuación, son usados na maioría das veces, polo que ten que describir cada un deles detallada:
- ArithmeticException. Estes inclúen os erros asociados con operacións aritméticas. O exemplo máis flagrante - a división por cero.
- ArrayIndexOutOfBoundsException - un chamamento ao número elemento de matriz que supera o total da súa lonxitude.
- ArrayStoreException - tentativa para designar un tipo de elemento incompatible da matriz.
- ClassCastException - un intento de levar o mal un tipo a outro.
- IllegalArgumentException - usando o argumento incorrecto na chamada do método.
- NegativeArraySizeException - unha excepción cando se crea unha matriz de tamaño negativo.
- NullPointerException - desvío de referencia para null.
- NumberFormatException - ocorre cando unha conversión de cadea mal para enteiro.
- UnsupportedOperationException - operación non está soportada.
Estes exemplos representan tipo de excepcións Java desmarcada. Pero así que mirar verificado:
- ClassNotFoundException - clase non atopado.
- IllegalAcccessException - restrinxir o acceso á clase.
- InterruptedException - interrupción do fluxo.
- NoSuchFieldException - non hai ningún campo obrigatorio.
A interpretación das excepcións
Falando de excepcións frecuentemente atopados Nótese que a súa interpretación no deseño, pode ser entendido de forma incorrecta. A continuación é unha pequena lista explicando con máis detalle, onde pode haber unha situación inesperada.
NullPointerException. O primeiro caso, cando existe unha excepción, é apelar a unha referencia a un obxecto que é igual a nulo. El esténdese tamén cos métodos de instancia de clase de cero. NullPointerException pode accionada no caso de obter unha matriz nula lonxitude igual. Para evitar tales situacións pode comprobar periodicamente sitios nulo.
ArrayIndexOutOfBoundsException. Calquera programa non pode existir sen o uso de matrices. Por conseguinte, o recurso frecuente a pode xerar e erro. Excepción ocorre cando un creador intenta acceder a un elemento de matriz que non está na lista de índice. Por exemplo, o valor requirido é enriba ou abaixo da lonxitude cero. Moitas veces é un resultado do feito de que na matriz comeza cunha puntuación de cero.
resultados
Tratamento de excepcións Java - un ambiente ferramenta poderosa, o que facilita moito o traballo do programador e permítelle para crear un ambiente limpo e exento de erros de código. A petición funcionamento quão suave e estable depende do estado e reputación do creador.
Claro que, dun xeito máis ou menos programas simples de rastrexar situacións anormais moito máis fácil. Pero, en grandes complexos automatizados para algúns centenares de miles de liñas só é posible como resultado da proba de longa duración e depuración.
Para Java erro de excepción a partir do cal xorden nalgunhas aplicacións, algunhas empresas ofrecen unha recompensa cando atopan entusiastas. Especialmente apreciado por aqueles que causan unha violación do software política de seguridade.
Similar articles
Trending Now