Hablando sobre el manejo de excepciones en Java

Este blog resumirá el manejo de excepciones en Java basado en el conocimiento existente. El siguiente blog es solo un resumen del proceso de aprendizaje personal. Es un gran honor ayudar a todos los bloggers.
Este blog introducirá brevemente la comprensión de las excepciones en Java y cómo capturar excepciones en Java. Solo haré un resumen de mí mismo y haré modificaciones adicionales más adelante con un estudio en profundidad.

entender excepción

La llamada excepción se refiere a un mecanismo para notificar a la persona que llama cuando el programa encuentra un error en tiempo de ejecución.Uno de los aspectos más importantes es que si ocurre un problema, no permitirá que el programa siga su ruta normal.Otro beneficio es que tiende a reducir la complejidad del código de manejo de errores

Excepción de matriz fuera de los límites
inserte la descripción de la imagen aquí
Excepción de puntero nulo
inserte la descripción de la imagen aquí
...

Cómo capturar excepciones

Conocimiento previo:
para comprender cómo se capturan las excepciones, primero debe comprender el concepto de una región protegida , que es una pieza de código que puede generar excepciones, y el código que maneja estas excepciones se sigue de inmediato.

El manejo de excepciones de Java involucra cinco palabras clave, a saber: probar, atrapar, finalmente, lanzar, lanzar

  • bloque de prueba: se usa para monitorear el código, colocar el código que puede causar excepciones en él, si ocurre una excepción, el código deja de ejecutarse y se lanza una excepción
try{
    
    
	//此处放置可能出现异常的代码
}
  • Bloque catch: se utiliza para capturar excepciones, capturar y procesar las excepciones lanzadas en el bloque de sentencias try, que debe seguir inmediatamente al bloque de sentencias try, cada cláusula catch parece recibir uno y solo un método de parámetro de tipo especial
try{
    
    
	//此处放置可能出现异常的代码
}catch(Type1 id1){
    
    
	//处理Type1异常
}catch(Type2 id2){
    
    
	//处理Type12异常
}...
  • finalmente: se utiliza principalmente para reclamar los recursos en el bloque de declaración de prueba (como: conexión de base de datos Conexión, socket de conexión de red, IO), el bloque de declaración finalmente siempre se ejecutará, si hay un retorno en el bloque de declaración de prueba, el bloque de instrucciones catch y la instrucción del bloque de instrucciones finalmente, siempre devuelven el valor de retorno en el bloque de instrucciones finalmente
  • throw: se usa en la instrucción catch para lanzar una excepción y lanzarla al nivel superior para su procesamiento
  • throws: cuando se usa en la declaración del método, significa que se lanzará una excepción

La forma en que se manejan las excepciones

Debido a la gran variedad de excepciones, las excepciones se manejarán de acuerdo con diferentes escenarios comerciales.

  • Para problemas anormales graves (como escenarios de pagos bancarios en línea), bloquee directamente el programa para evitar consecuencias más graves
  • Para problemas anormales generales (en la mayoría de los casos), se puede imprimir el registro de errores y se puede notificar al ingeniero a tiempo a través de la alarma de monitoreo.
  • Para excepciones recuperables (escenarios relacionados con transmisión de red), se pueden intentar operaciones de reintento

En la mayoría de los casos, implementaremos el segundo método. El contenido del registro es la información de la llamada del método anómalo, de modo que podamos localizar rápidamente la ubicación anómala. Pila de llamadas al método: hay un espacio de memoria en la JVM llamado "
virtual La "pila de máquina" se usa especialmente para almacenar la relación de llamadas entre métodos. Cuando ocurre una excepción en el código, puede usar e.printStackTrace() para verificar la ubicación de la llamada al método donde ocurrió la excepción.

proceso de manejo de excepciones

  1. El programa primero ejecuta el bloque de sentencias try.
  2. Si hay una excepción en el código del bloque de prueba, saltará del bloque de prueba y verificará si hay una instrucción catch del mismo tipo que la excepción a continuación. 2.1.
    Si se encuentra una coincidencia, el bloque de instrucción catch 2.2 se ejecuta
    . Si no se encuentra ninguna coincidencia, la excepción se pasa hacia afuera, es decir, se pasa a la persona que llama de nivel superior de la llamada al método
    2.3. Si la persona que llama de nivel superior no encuentra una coincidencia, seguirá siendo pasado hacia afuera
    2.4. Hasta que el método principal no tenga una excepción coincidente, se entregará a la JVM para su procesamiento. En este punto, el programa terminará de manera anormal
  3. Independientemente de si finalmente se encuentra un tipo de excepción coincidente, el código finalmente se ejecutará antes del final del método.

Jerarquía de excepciones de Java

Java tiene un rico sistema de excepciones incorporado para representar excepciones en diferentes situaciones
inserte la descripción de la imagen aquí

  • La clase de nivel superior Throwable deriva dos subclases, Error, Excepción
  • El error se refiere a errores internos y errores de consumo de recursos durante el tiempo de ejecución de Java. El programa no arroja tales excepciones. Este tipo de sistema de excepción no puede resolverlo. Solo puede informar al usuario y finalizar el programa.
  • Exception es la clase principal de todas las clases de excepción utilizadas para escribir programas
  • Hay una subclase RunTimeException en Exception, y muchas clases de excepción comunes se derivan de ella.

Java estipula que las excepciones derivadas de Error y RuntimeException son excepciones no verificadas /excepciones de tiempo de ejecución , y otras son excepciones verificadas/excepciones de tiempo de compilación

Excepciones no verificadas (aquí se refiere a RuntimeException): generalmente, las excepciones causadas por no verificar cuidadosamente el código o los errores del programa , como las excepciones de puntero nulo, la matriz fuera de los límites, las excepciones de conversión de tipo, etc., son causadas por la escritura de código errores Estas excepciones son causadas durante el proceso de codificación se pueden evitar.

Excepción comprobada: generalmente no está relacionada con la programación de código, pero está relacionada con el entorno en el que se ejecuta el programa, como acceder a un archivo, pero el archivo no existe, lo que en sí tiene poco que ver con el problema del programa.

La diferencia entre las excepciones no verificadas y las excepciones verificadas:

  • Las excepciones no verificadas, las clases que pertenecen a la clase RuntimeException y sus subclases (y clases derivadas), informarán un error en tiempo de ejecución
  • Excepciones comprobadas, dentro del alcance de Excepción, todas las clases excepto las excepciones no comprobadas son excepciones comprobadas y las excepciones se lanzan en tiempo de compilación
  • Si un fragmento de código puede arrojar una excepción verificada, debe manejarse explícitamente, intente{…}atrapar{…} o tírelo a la capa superior

Lo anterior es un resumen de los puntos de conocimiento de las excepciones de Java. Con la profundización del aprendizaje posterior, el contenido se complementará y modificará sincrónicamente. Será un gran honor ayudar a todos los bloggers. Por favor corríjame

Supongo que te gusta

Origin blog.csdn.net/m0_46233999/article/details/117740695
Recomendado
Clasificación