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 }
-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 { }
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 ("不合理 的 年龄" ); }
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); } }
¿Serializar UID para guardar el valor de identificación de registro?
https://blog.csdn.net/seabreezesuper/article/details/70141844