200 Shares 1434 views

Java: las excepciones y su manejo

Cualquier programa funcionará de forma estable sólo si el código fuente se depura, y no existen condiciones que pueden causar situaciones imprevistas. El proceso de captura de los posibles fallos se lleva a cabo en la fase de programación. Para ello, el desarrollador tiene en cuenta todos los resultados esperados y los intentos de limitar el efecto del error, de modo que no podía interferir en el funcionamiento del programa, o conducir a su colapso.

Cuándo se puede necesitar manejo de excepciones

En Java, una excepción puede ser causada por la entrada de usuario incorrecto, hay necesidad de una repentina programa de desconexión de la red de recursos o. Para un uso cómodo creada por el desarrollador de la aplicación, se debe controlar la aparición de situaciones de emergencia. El consumidor no debe tener que esperar a salir de una aplicación, la pérdida de datos como resultado de una excepción no controlada, o sólo una parte de un mensaje que indica que algo ha ido mal.

Manejo de excepciones de Java

Qué tener en cuenta? El lenguaje Java tiene su propia funcionalidad de gestión de excepciones incorporada. Por supuesto, un gran porcentaje de error es capturado por otra etapa de la compilación, el sistema le notificará automáticamente que su uso ya no es posible. Pero no es este tipo de excepción que se produce en tiempo de ejecución. El desarrollador debe ser capaz de prever y diseñar el código para que no causó un error, y se maneja de una manera especial y entregó el control a otra rama.

En Java, esto es impuesta por el compilador para capturar una excepción, por lo que son conocidos los problemas típicos y tienen unos patrones de ejercicio estándar.

exclusiones típicas

El ejemplo más simple, en el cual se puede obtener una excepción – esta división. A pesar de su simplicidad, en términos, como un divisor, puede ser cero, lo que resultará en un error. Bueno, si es posible predecir la aparición del pasado y prevenir. Sin embargo, esta opción no siempre está disponible, por lo que la captura de la excepción debe organizarse directamente en el caso de "división por cero".

El mecanismo de Java para interceptar error de procesamiento es el siguiente:

  • se crea objeto de excepción montón, así como cualquier otro;
  • el curso natural del programa se interrumpe;
  • mecanismo de exclusión está tratando de encontrar una forma alternativa para continuar con el código;
  • Encuentra una ejecución segura del programa en el procesador, el trabajo o restaurado, o va a ocurrir realización de excepción de una manera especial.

El ejemplo más simple de crear un error podría tener este aspecto:

si (a nulo ==)

arrojar nueva NullPointerException ();

Aquí, la variable a está marcada en la inicialización, es decir, no es si la referencia a un objeto nulo. Si esta situación ha surgido y necesitan un manejo especial, una excepción es lanzada por un tiro de nuevo NullPointerException ().

Pocos detalles sobre las palabras clave

Cuando se trata de excepciones a menudo es necesario el uso de la palabra clave de Java para referirse a una acción particular. Este lenguaje de su programación de cinco:

  • Tratar. Esta palabra clave se ya se reunió, y significa una transición en una sección de código que puede lanzar una excepción. Bloque llaves {} limitados.
  • Captura. Se intercepta el tipo de excepción deseada y manejar apropiadamente.
  • Por último. Esta palabra clave es opcional y se utiliza para realizar una determinada pieza de código, que se requiere de todos modos, incluso si no es una excepción no se detecta. Añadido directamente después del bloque try.
  • El tiro – le permite crear excepciones de Java desde cualquier lugar.
  • Lanza – una palabra clave que se coloca en la firma del método. Esto significa que el siguiente código puede lanzar una excepción de este tipo Java. Esta marca sirve como una señal para los desarrolladores que deben tenerse en cuenta – el método no puede funcionar como se espera de él.

La captura con un try

Lanzamiento de excepciones de Java, naturalmente, se supone que será manejado de una manera especial. La forma más conveniente de hacerlo, si la sección de código está cercado en un bloque. Que puede contener una excepción. Cuando se ejecuta este código, la máquina virtual encontrará una situación inesperada, entender que hay un bloque crítico y transfiere el control a la estación con el procesamiento.

El código Java se envuelve en un intento bloque especial, dentro de la cual puede ser una excepción. Por lo tanto, colocó varias situaciones imprevistas que se capturan en el mismo lugar, no raspolzayas código.

El código más típica a la unidad de procesamiento es el siguiente:

try {

// Aquí hay un código que puede generar una excepción

} Catch (identifikator_1 Tip_isklyucheniya_1) {

// Aquí hay control de excepciones, de acuerdo con su tipo y las condiciones;

} Catch (identifikator_2 Tip_isklyucheniya_2) {

// Aquí hay control de excepciones, de acuerdo con su tipo y las condiciones;

}

captura Keyword informa que el código, y escanearlo una excepción, a ser tratado como se describe a continuación, siempre que cumpla con su tipo. El identificador se puede utilizar en el procesamiento del bloque de código como argumentos.

finalmente

Como se puso de manifiesto desde el capítulo anterior, los bloques de captura capturar las excepciones y procesarlos. Sin embargo, muy a menudo la situación se plantea cuando se debe ejecutar algún código, independientemente de si fueron capturados errores. Para ello existe la palabra clave finalmente. Se utiliza para aumentar los valores de los distintos contadores, cierre de archivos o conexiones de red.

Esta parcela presenta varios bloques catch inventaron métodos de captura excepciones. Por ejemplo, el código contenido en el try genera una situación inesperada como el frío. A continuación, la consola se mostrará la expresión «resfriado!» Y «¿Es eso algo que celebrar?». Es decir, el bloque finally se ejecuta en cualquier caso.

De hecho, una manera de evitar el desencadenamiento finalmente allí. Está conectada con la realización de la máquina virtual. Encontrar la manera de ponerla en práctica, es posible en los espacios abiertos de Internet.

palabra clave Throw

Tiro genera una excepción. Su sintaxis es la siguiente:

arrojar nueva NewException ();

Se crea una nueva excepción a la NewException tipo (). Como un tipo se puede utilizar ya está incluido en las librerías de clases de Java estándar y previamente definido por el desarrollador de su propia producción.

Este diseño es parte de la descripción de cualquier método, que luego debe producirse la llamada dentro del bloque try, con el fin de ser capaces de interceptarlo.

Palabra clave lanza

¿Y si en el proceso de desarrollo de una situación en la que el método puede lanzar una excepción, pero no son capaces de manejar correctamente. Para este fin, en la firma del método especifica la palabra lanza y el tipo de posibles excepciones.

Esta etiqueta es una especie de indicador para desarrolladores de clientes que el método no es capaz de manejar su misma excepción. Además, si se comprueba el tipo de error, entonces el compilador obligará explícitamente pedirlo.

Trate de recursos

Los desarrolladores de Java versión 7 han incluido una innovación importante, como un bloque de tratamiento intento con recursos.

Muchos objetos son creados en Java, después de su uso debe ser cerrado para conservar los recursos. Anteriormente se tenía que tener esto en cuenta y poner fin a estos casos de forma manual. Ahora, sin embargo, aparecieron interfaz AutoClosable. Ayuda a cerrar automáticamente los objetos ya usados colocados en un bloque try. A través de este enfoque se ha vuelto más conveniente escribir código en su legibilidad se incrementa significativamente.

clases propias excepciones de Java

Los creadores del lenguaje de programación descrito tomaron en cuenta muchos aspectos de los modelos tipo de emergencias. Sin embargo, todas las opciones para evitar que el resultado de los acontecimientos no funcionará, por lo que en Java implementa la capacidad de definir sus propias excepciones, es adecuada a las necesidades del código particular.

La forma más sencilla de crear – a heredar de los más apropiados para el contexto del objeto.

Allí pasó a heredar de Excepción, la clase que se utiliza para definir sus propias excepciones. En MiExcepción tiene dos constructores – un defecto, el segundo – con la cadena de argumentos de tipo MSG.

Luego, en el método FullConstructors aula pública implementado f, que contiene la firma lanza MiExcepción. Esta palabra clave significa que f puede lanzar como Java MiExcepción excepción. Además, en el cuerpo del método producido texto de salida de información a la consola en sí y la MiExcepción actual generación, por el tiro.

El segundo método es ligeramente diferente de la primera que cuando se crea una excepción, se pasa un parámetro de cadena, lo que se reflejará en la consola en la captura. En lo principal, está claro que f () yg () se colocan en una cuenta de cheques tratar de atrapar palabra clave configurado para capturar MiExcepción. El resultado del proceso es para mostrar un mensaje de error en la consola:

Por lo tanto se trataba de agregar excepciones de Java, por su propia mano.

Arquitectura excepciones

Al igual que con todos los objetos de Java, excepciones también son heredados y tienen una estructura jerárquica. El elemento raíz de todos los errores generados en este lenguaje de programación es de clase java.lang.Throwable. Heredado de él dos tipos – errores y excepciones.

Error – señala el error crítico y es excepciones Java sin marcar. Intercepción y procesamiento de dichos datos en la mayoría de los casos se produce en la etapa de diseño y no en la necesidad de introducir en el código de la aplicación final.

La clase más comúnmente utilizado para la creación y el análisis de las excepciones es la excepción. Lo cual, a su vez, se divide en varias ramas, incluyendo RuntimeException. Por RuntimeException son excepciones de tiempo de ejecución, es decir, que se producen durante el programa. Todas las clases de derivados de ella son no verificable.

A menudo hay excepciones

En las excepciones de Java, se presenta a continuación la lista de las cuales, se utilizan con más frecuencia, por lo que debe describir cada una de ellas en detalle:

  • ArithmeticException. Estos incluyen los errores asociados con las operaciones aritméticas. El ejemplo más claro – la división por cero.
  • ArrayIndexOutOfBoundsException – una apelación al número de elemento de matriz que excede el total de su longitud.
  • ArrayStoreException – intento de asignar un tipo de elemento incompatible de la matriz.
  • ClassCastException – un intento de llevar al mal un tipo a otro.
  • IllegalArgumentException – con el argumento incorrecto en la llamada al método.
  • NegativeArraySizeException – una excepción cuando se crea una matriz de tamaño negativo.
  • NullPointerException – mal uso de referencias a null.
  • NumberFormatException – se produce cuando una conversión de cadena a entero equivocada.
  • UnsupportedOperationException – operación no es compatible.

Estos ejemplos representan los tipos de excepciones de Java sin marcar. Pero a fin de buscar verificado:

  • No se ha encontrado Clase – ClassNotFoundException.
  • IllegalAcccessException – restringir el acceso a la clase.
  • InterruptedException – interrupción del flujo.
  • NoSuchFieldException – hay ningún campo obligatorio.

La interpretación de las excepciones

Hablando de excepciones se encuentran con frecuencia hay que señalar que su interpretación en el diseño, puede ser percibido de forma incorrecta. Lo siguiente es una breve lista de explicar con más detalle, donde puede haber una situación inesperada.

NullPointerException. El primer caso cuando hay una excepción, es apelar a una referencia a un objeto que es igual a null. También se extiende a los métodos de instancia de clase cero. NullPointerException puede ser lanzado en el caso de la obtención de una longitud de la matriz nula de igualdad. Para evitar estas situaciones comprobará periódicamente los sitios de la nula.

ArrayIndexOutOfBoundsException. Cualquier programa no puede existir sin el uso de matrices. En consecuencia, el recurso frecuente a la que puede generar y error. Excepción se produce cuando un desarrollador intenta acceder a un elemento de matriz que no está en la lista de índices. Por ejemplo, el valor solicitado está por encima o por debajo de longitud cero. Muy a menudo es el resultado del hecho de que en la matriz comienza con una puntuación de cero.

hallazgos

Manejo de excepciones de Java – un entorno potente herramienta, lo que facilita enormemente el trabajo del programador y le permite crear un ambiente limpio y libre de errores de código. En funcionamiento la aplicación de lo suave y estable depende de la posición y reputación del desarrollador.

Por supuesto, en unos programas más o menos sencillas para rastrear situaciones anormales mucho más fácil. Sin embargo, en grandes complejos automatizados para unos pocos cientos de miles de líneas que sólo es posible como resultado de las pruebas y la depuración a largo plazo.

Por error de excepción de Java desde el cual surgen en algunas aplicaciones, algunas compañías ofrecen una recompensa cuando se encuentran entusiastas. Especialmente apreciado por los que causan una violación de la política de seguridad de software.