¿Cuál es la diferencia entre Errores y Excepciones? [duplicar]


Posible Duplicado:
Diferencias entre Excepción y Error

¿Cómo puedo diferenciar entre Errores y Excepciones en Java?

Author: Community, 2011-04-28

4 answers

Un error " indica problemas graves que una aplicación razonable debe no trates de atraparlo."

Mientras que

Una Excepción", indica condiciones que una aplicación razonable podría quiero atrapar."

Error junto con RuntimeException y sus subclases son unchecked excepciones. Todas las demás clases de excepción son checked excepciones.

Checked las excepciones son generalmente aquellas de las que un programa puede recuperarse una buena idea para recuperarse de tales excepciones programáticamente. Los ejemplos incluyen FileNotFoundException, ParseException, etc. Se espera que un programador compruebe estas excepciones usando el bloque try-catch o lanzarlo de nuevo al llamante

Por otro lado tenemos excepciones sin marcar. Estas son esas excepciones que podrían no suceder si todo está en orden, pero sí ocurren. Los ejemplos incluyen ArrayIndexOutOfBoundException, ClassCastException, etc. Muchas aplicaciones usarán la cláusula try-catch o throws para RuntimeExceptions y sus subclases pero desde el punto de vista lingüístico no es necesario hacerlo. Tenga en cuenta que la recuperación de un RuntimeException es generalmente posible, pero los chicos que diseñaron la clase/excepción consideraron innecesario para el programador final comprobar dichas excepciones.

Los errores también son excepciones sin marcar y el programador no está obligado a hacer nada con ellos. De hecho, es una mala idea usar una cláusula try-catch para Errores. Muy a menudo, la recuperación de un error no es posible y el programa debe ser se le permite terminar. Los ejemplos incluyen OutOfMemoryError, StackOverflowError, etc.

Tenga en cuenta que aunque los errores son excepciones sin marcar, no debemos tratar de tratar con ellos, pero está bien tratar con RuntimeExceptions (también excepciones sin marcar) en el código. Las excepciones marcadas deben ser manejadas por el código.

 154
Author: Nirmal- thInk beYond,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-12 15:17:45

Error y Exception ambos extienden Throwable, pero sobre todo Error es lanzado por JVM en un escenario que es fatal y no hay manera para que el programa de aplicación se recupere de ese error. Por ejemplo OutOfMemoryError.

Aunque incluso la aplicación puede generar un Error pero no es una buena práctica, en su lugar las aplicaciones deben usar excepciones verificadas para condiciones recuperables y excepciones de tiempo de ejecución para errores de programación.

 16
Author: Jugal Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-28 05:45:36

El error es algo que la mayoría de las veces no se puede manejar.

La excepción estaba destinada a darte la oportunidad de hacer algo con ella. como intentar otra cosa o escribir en el registro.

try{
  //connect to database 1
}
catch(DatabaseConnctionException err){
  //connect to database 2
  //write the err to log
}
 12
Author: fatnjazzy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-28 06:43:16

En general, el error es el que nadie puede controlar o adivinar cuando ocurre.La excepción se puede adivinar y se puede manejar. En Java Excepción y Error son sub clase de Throwable.It se diferencia en función del control del programa.Error como el error OutOfMemory que ningún programador puede adivinar y puede manejar it.It depende dinámicamente en función de la arquitectura, el sistema operativo y la configuración del servidor.Donde como programador de excepción puede manejarlo y puede evitar el mal comportamiento de la aplicación.Por ejemplo, si su código es buscando un archivo que no está disponible, se lanza IOException.Tales instancias programador puede adivinar y puede manejarlo.

 4
Author: nicks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-28 04:25:47