[Java] Manejo de excepciones

En un programa Java, una situación anormal que ocurre se llama una excepción.

- [¡Error lógico y gramatical] no es anormal!

-Dividido en Error y Excepción

-El error es un problema de error que la JVM no puede resolver, como el desbordamiento de memoria StackOverFlow y OOM

-Excepción generalmente maneja problemas inesperados

Por ejemplo, puntero nulo NullPointerException, matriz fuera de límites OutofIndexException, excepción de tiempo de espera de conexión, no se puede leer ninguna excepción

 

Para el manejo de excepciones, 1 finaliza el programa y 2 establece la posibilidad de excepciones al escribir

 

Excepciones en tiempo de compilación y excepciones de tiempo de ejecución

Excepción comprobada en tiempo de compilación

 

Excepción de tiempo de ejecución sin marcar

 

 

Dos mecanismos de procesamiento Try-Catch-Finalmente Throws-Throw

 

 - Manejar excepciones que pueden existir en tiempo de compilación en tiempo de ejecución

// especies de la ejecución del programa anormal, un código de error correspondiente al objeto de excepción generado y lanza una clase de excepción
     // una vez que se lanza el objeto de excepción, carreras terminan 
    @test
     pública  vacío exceptionTest1 () {
         try {
             // posible excepción Código 
        } catch (excepción de excepción) { // Excepciones que se producen al hacer coincidir los parámetros, ingrese el bloque de código de captura para manejar las excepciones
             // La forma de manejar las excepciones 
            exception.printStackTrace (); 
        } finalmente {
             // No importa si ocurre una excepción, eventualmente debe El bloque de código ejecutado
             // se aplica al código que debe ejecutarse al final, como liberar recursos 
            System.out.println ("¡Debe ejecutarse el código!" ); 
        } 
        //Además del sistema directo finalmente sale del intento, se ejecutará
         // si el intento, al final surgió método de devolución, tendrá que esperar por fin terminado, volver a intentar realizar la devolución 
    } 

    @test 
    pública  vacío exceptionTest2 () {
         try { 
        } finalmente { // Puede ejecutar finalmente directamente sin manejar excepciones, pero no lo use 
        } 
    } 

    @Test 
    public  void exceptionTest3 () {
         try {
             // Puede capturar múltiples excepciones una por una 
        } catch (NullPointerException nullPointerException) { 
            nullPointerException.printStackTrace () ; 
        } captura(ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException) { 
            arrayIndexOutOfBoundsException.printStackTrace (); 
        } catch (ArithmeticException arithmeticException) { 
            arithmeticException.printStackTrace (); 
        } catch (Excepción de excepción) {
             // Cuando no se capturan todas las excepciones, la excepción se realiza por completo 
            . printStackTrace (); 
        } 
        // No escriba la captura de excepción total al principio, después de que la excepción total se captura y procesa directamente, las siguientes excepciones detalladas no se pueden capturar, escritas en blanco 
    }
PRUEBA - CAPTURA - FINALMENTE

 

-Continuar tirando hacia arriba

    // Si no usamos try-catch-finally para el procesamiento, podemos lanzar directamente una excepción 
    
    // lanza + el tipo de excepción correspondiente, declara la excepción que puede ocurrir en este método, si ocurre una excepción, lanza la excepción
     // esencialmente, throws no resuelve la excepción, pero lanza la excepción a la persona que llama del método de liberación. La persona que llama puede intentar atrapar o continuar lanzando.
     // Cuando ocurre una excepción, se genera un objeto de excepción en el código de excepción, si esta excepción cumple Cuando throws contiene un tipo de excepción, el objeto de excepción lanza 
    public  void throwsMethod () lanza Exception { 
       
    }
Lanzamientos

 

Escenario de uso:

-El método anulado en la clase padre no produce una excepción, y la subclase no puede usar tiros. Si el método anulado en la subclase falla, debe intentar atrapar

-Múltiples métodos se llaman en el método a, que es una relación progresiva. El método llamado debe declarar lanzamientos y lanzarlos juntos en el método try-catch del método a.

 

-THROW crea manualmente excepciones y lanza excepciones

    void throwException ( int age) lanza Exception {
         if (0 <age || age> 100) lanza una  nueva Excepción ("不合理 的 年龄" ); 
    }
LANZAR

 

 

Clase de excepción personalizada

/ * 
Excepción Excepción de tiempo de compilación 
anormalidad operación de un RuntimeException 
 * / 

// encargo excepción necesidad de heredar clase de excepción 
pública  clase WTF_Exception la extiende excepción { 

    // constantes desconocidas ID 
    estática  final  largo serialVersionUID = -3387516993124229948L ; 
    
    pública WTF_Exception () { 
        
    } 
    
    pública WTF_Exception ( Mensaje de cadena) {
         super (mensaje); 
    } 
}
Ver código

¿Serializar UID para guardar el valor de identificación de registro?

https://blog.csdn.net/seabreezesuper/article/details/70141844

 

Supongo que te gusta

Origin www.cnblogs.com/mindzone/p/12725913.html
Recomendado
Clasificación