Error de excepción en Java y las similitudes y diferencias

Error (error) y la Excepción (anormal) es una subclase de la clase java.lang.Throwable en código Java única instancia Throwable hereda de la clase con el fin de tiro o captura.

Excepción y de error refleja la plataforma Java diseñadores clasificación de las diferentes situaciones anormales, la excepción es de esperar a circunstancias imprevistas, el programa se está ejecutando, y el desarrollador debe ser capturado, el tratamiento adecuado. medios de error que en circunstancias normales es improbable que suceda, la mayoría de Error resultarán en una procedimientos no normales, estado irrecuperable. Así que los desarrolladores no tienen que ser capturados.

caso de error es cualquier error tecnologías de procesamiento no recuperables, que serán sin duda dará lugar a la terminación anormal del programa. La comprobación de errores y el tipo de error que no pertenecen a la mayoría se producen en tiempo de ejecución. Excepción se puede dividir en excepciones de verificación (marcado) y no comprueba excepciones (no marcado), se puede comprobar el proceso anormal debe ser capturado en el código fuente en la pantalla, hay una parte del examen de la compilación. Sin anormalidades se llaman excepciones de tiempo de ejecución, por lo general se pueden evitar errores de codificación de la lógica, de acuerdo con las necesidades específicas para determinar si se captura, y el compilador no es obligatorio.

Los siguientes son los errores comunes y Excepción:

1 excepciones de tiempo de ejecución (RuntimeException):

	NullPropagation:空指针异常;
	
	ClassCastException:类型强制转换异常
	
	IllegalArgumentException:传递非法参数异常
	
	IndexOutOfBoundsException:下标越界异常
	
	NumberFormatException:数字格式异常

2. excepciones no en tiempo de ejecución:

	ClassNotFoundException:找不到指定 class 的异常
	
	IOException:IO 操作异常

3. Error (Error):

	NoClassDefFoundError:找不到 class 定义异常
	
	StackOverflowError:深递归导致栈被耗尽而抛出的异常
	
	OutOfMemoryError:内存溢出异常

El siguiente código de Java que puede causar un error de desbordamiento de pila.

// 通过无限递归演示堆栈溢出错误
class StackOverflow {
    public static void test(int i) {
        if (i == 0) {
            return;
        } else {
            test(i++);
        }
    }
}

public class ErrorEg {
    public static void main(String[] args) {
        // 执行StackOverflow方法
        StackOverflow.test(5);
    }
}

salida de funcionamiento es:

Exception in thread "main" java.lang.StackOverflowError
    at ch11.StackOverflow.test(ErrorEg.java:9)
    at ch11.StackOverflow.test(ErrorEg.java:9)
    at ch11.StackOverflow.test(ErrorEg.java:9)
    at ch11.StackOverflow.test(ErrorEg.java:9)

El código anterior a través de un recursiva infinita llamadas finalmente condujo a un error java.lang.StackOverflowError.

Publicados 457 artículos originales · ganado elogios 94 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_45743799/article/details/104736051
Recomendado
Clasificación