Java de programación: cuando se producen errores
Los errores en las aplicaciones Java pueden ocurrir en varias ocasiones. Sin embargo, se puede clasificar en términos generales, cuando se producirá un error en dos categorías, en tiempo de compilación y tiempo de ejecución, tal como se describe en las siguientes secciones.
Compilar errores de tiempo
El compilador convierte el código de aplicación en código de bytes de Java. Durante este proceso, se necesita el código legible que se escribe y lo convierte en algo que el Java Runtime Environment (JRE) entiende.
Para llevar a cabo este proceso, el compilador debe analizar gramaticalmente el código, lo que significa que lee el código de una manera que de forma inequívoca determina exactamente lo que desea que la aplicación debe hacer, cuando lo desee hacerlo, y cómo desea que la tarea cumplida. Si usted rompe las reglas para escribir código sin ambigüedades, el compilador muestra un mensaje de error. Este mensaje es en realidad una especie de excepción.
De análisis significa para leer la entrada que usted proporciona, como el código en forma legible, y convertirlo en otra cosa, como el código de bytes de Java. Una aplicación también puede analizar la entrada del usuario. Por ejemplo, un usuario podría escribir una cadena que su código de aplicación se convierte en un número.
Por lo tanto, el análisis sintáctico es el acto de la lectura de algún tipo de entrada, la interpretación de que la entrada de una manera específica, y luego producir la salida basándose en la entrada interpretado. Un analizador genera un error cuando la entrada no es lo que espera.
Por ejemplo, si el usuario introduce una cadena que contiene la letra C, y se espera una cadena que contiene un número, como 123, el analizador generará una excepción diciendo que la entrada es incorrecta.
Tiempo de compilación errores son los más fáciles de manejar porque el compilador normalmente te dice exactamente lo que está mal y donde se ha producido el error. Incluso si la información no es exacta, el compilador lo menos llegar a la zona derecha del código roto de modo que usted puede buscar el error que contiene.
Para asegurarse de que todo el mundo entiende, precisamente, cómo se supone que el lenguaje Java para trabajar, los desarrolladores a crear una especificación para ello. Esta especificación incluye los elementos del lenguaje en un lenguaje especial llamado Backus-Naur Form (BNF). Usando BNF es un método extremadamente precisa de describir un lenguaje de modo que no hay ningún riesgo de interpretación errónea por cualquier persona.
Usted puede ver una muestra de la BNF para el lenguaje Java en el Departamento de Ciencias de la Computación - Daimí. No se preocupe demasiado acerca de ser capaz de leer esta especificación. La mayoría de los desarrolladores nunca aprenden a interpretar el BNF para los idiomas que utilizan - que es el dominio de los desarrolladores del compilador.
Errores de ejecución
El compilador Java no puede encontrar todos los errores en el código. Si la forma del código es correcto (es decir, que no han cometido ningún error en escribir los elementos que crean la aplicación), el compilador no se encuentra el error.
Por ejemplo, si se inicializa un valor numérico a 5 en lugar de 4, el compilador no puede encontrar el error para usted porque el compilador no tiene ni idea de que realmente quería decir que escribir 4. Este tipo de errores crean errores de ejecución - los errores que ocurren en algún momento durante la ejecución de la aplicación.
Errores de ejecución pueden ocurrir en todo tipo de ocasiones. Algunos errores son más propensos a ocurrir en momentos específicos. La siguiente lista le ofrece algunas ideas acerca de cuándo los errores de ejecución es probable que ocurran:
Inicialización: Cuando la aplicación se inicia primero - antes de que presenta algún tipo de interfaz con el usuario o realiza cualquier trabajo útil - que pasa por una fase de inicialización. Esta es la hora de establecer una variable con el tipo incorrecto o tratando de utilizar una variable antes de inicializar va a llamar la atención. Muchos errores relacionados con los recursos también se producen durante la inicialización porque la mayoría de las aplicaciones abiertas requieren recursos durante este tiempo.
Modo operativo: Después de una aplicación inicializa, está en modo de funcionamiento. Si tiene una interfaz de usuario, que se inicia la interacción con el usuario. Este es el momento en que más importa entrada del usuario.
También encontrará variables inicializadas incorrectamente en este momento porque el usuario (o el destinatario de la salida de la aplicación, tales como el sistema) verán que la salida es incorrecto. Solicitudes de los usuarios de los recursos, como por ejemplo un archivo de datos, también crean errores durante esta época.
Procesamiento en segundo plano: La mayoría de los errores de procesamiento de fondo son consecuencia del entorno (como la pérdida de una conexión de red), recursos (como un archivo perdido), variables inicializadas de forma incorrecta, o errores que falta en la forma en que le dijiste a la solicitud para realizar una tarea. Algunas tareas se llevan a cabo más comúnmente en el fondo que otros.
Por ejemplo, la impresión de un documento o la descarga de los recursos de Internet se realizan comúnmente en el fondo, mientras el usuario sigue trabajando con la aplicación en primer plano.
Cerrar: Cuando el usuario (incluyendo las cuentas del sistema) le dice a la aplicación ya no se necesita es, la aplicación pasa por una fase de apagado. Durante esta fase de apagado, la aplicación se cierra archivos y realiza otras tareas de limpieza que garanticen la aplicación no deja un desastre para el sistema operativo.
Los errores más comunes que pueden ocurrir durante esta fase no están liberando recursos que su aplicación ha utilizado y no guardar los datos en el disco. Por supuesto, los errores de codificación pueden ocurrir en cualquier momento, y esta fase de la operación no es una excepción. Se notaba la aplicación para cerrar cinco archivos cuando sólo cuatro de ellos son en realidad abierta.
El JRE presentará la mayoría de los errores de ejecución que detecte a usted como excepciones. Sin embargo, el JRE no cogerá cada error en la aplicación. Usted también debe mirar a la salida de su aplicación para determinar si la salida coincide con las expectativas que tiene para una entrada dada.
Además, es importante tener en cuenta el estado de los recursos que utiliza para asegurarse de que no están dañados de alguna manera. Por ejemplo, es necesario asegurarse de que todos los datos que debe guardar en un archivo en realidad termina en el archivo cuando la aplicación se cierra.
Java 8 tiene un mayor énfasis en la seguridad, lo que significa que usted va a ver más casos SecurityException mientras trabaja con su aplicación.
Al ver un aumento de excepciones de seguridad no significa que su código es defectuoso o que Java 8 está lleno de errores - que significa que Java 8 localiza automáticamente y le informa acerca de los problemas que podrían causar problemas de seguridad como la gente utiliza la aplicación.
La documentación SecurityException aparece en Java.net. Por supuesto, usted querrá saber lo que todo el alboroto se trata.