Excepción de viaje de entrada de Java de Konjac

1. El error y la excepción de Java
tienen un ancestro común Throwable.

Para Error, significa que en circunstancias normales, la probabilidad de ocurrencia es pequeña y es difícil de controlar. La gran mayoría de los Errores causarán un daño mayor al programa (como inoperabilidad) y no se pueden detectar.

La excepción es un lanzamiento predecible y controlable en el programa y se puede detectar.

2. Métodos de manejo de excepciones
1. Lanzamiento de excepciones (el lanzamiento no maneja):
cuando puede ocurrir una excepción en el programa, pero el desarrollador no quiere manejar la excepción en este nivel, necesita lanzar la excepción al nivel superior para su procesamiento. En el procesamiento del lanzamiento de excepciones, se puede dividir en lanzamiento explícito y lanzamiento implícito.

Cuando la excepción es RunTimeException o sus subclases, el método del programa se puede llamar sin ninguna declaración y la compilación puede pasar.
Para otros tipos de excepciones, debe agregar throws + una declaración explícita del tipo de excepción antes del '{' del método.
Ejemplo:

public class Test{
    
    
	public static void main(String[] args) throws IOException {
    
    
		BufferedReader keyin=new BufferedReader (new InputStreamReader(System.in));
		String c1;
		int i=0;
		String[] e=new String[10];
		while(i<10) {
    
    
			c1=keyin.readLine();/*此处出异常时会抛出异常对象*/
			e[i]=c1;
			i++;
		}
	}
	

Detección de excepciones (manejo de excepciones): la
declaración try {} catch () se puede usar para detectar excepciones. Para algunas declaraciones que pueden tener excepciones, generalmente se escriben en try, y el tipo de excepción se establece en catch para capturar (explícita e implícitamente) las excepciones lanzadas. También puede agregar una declaración finalmente como una salida unificada de acuerdo con los requisitos de diseño.

try {
    
    
			while(i<10) {
    
    
			c1=keyin.readLine();
			e[i]=c1;
			i++;
				}
			}
	catch(IOException e1) {
    
    
		e1.printStackTrace();
	}

Después de usar try catch, cuando ocurre una excepción en el segmento, el terminal en ejecución generará el contenido de la excepción encapsulada.

3. Por ejemplo, RunTimeException
usa la clase principal anormal Exception para capturar la excepción

Los errores comunes de RunTimeException son:

(1) ArithmeticException:

public class Test{
    
    
	public static void main(String[] args){
    
    
		int[] m= {
    
    1,2,3,4,0};
		int ans=0;
	try {
    
    
			for(int i=0;i<m.length;i++) {
    
    
				ans=+3/m[i];
				System.out.println(ans);
			}
		}
	catch(Exception e1) {
    
    
		e1.printStackTrace();
	}
}
}

En este momento, el sistema arroja:
Inserte la descripción de la imagen aquí

(2) Excepción de puntero nulo Cuando
se utiliza una referencia de objeto sin inicialización después de la declaración, provocará una excepción de puntero nulo:

public class Test{
    
    
	public static void main(String[] args){
    
    
		
	try {
    
    
			
		Integer c,c1;
		int ans=0;
		for(int i=0;i<2;i++) {
    
    
				ans=+c.intValue();
				System.out.println(c.equals(c1));
				}
			
		}
	catch(Exception e1) {
    
    
		e1.printStackTrace();
	}
}
}

Lo mismo es cierto para las matrices no inicializadas.

public class Test{
    
    
	public static void main(String[] args){
    
    
		
	try {
    
    
			int []a;
			int ans=0;
			for(int i=0;i<2;i++) {
    
    
				System.out.println(a[0]);
				}
			
		}
	catch(Exception e1) {
    
    
		e1.printStackTrace();
	}
}
}

(3) Excepción de pila vacía:
en el objeto de pila, si se usa el método pop () cuando no hay referencia de objeto en la pila, se producirá una excepción de pila vacía.

import java.util.*;
public class Test{
    
    
	public static void main(String[] args){
    
    	
	try {
    
    
			Stack st=new Stack();
		Object ob=st.pop();
		}
	catch(Exception e1) {
    
    
		e1.printStackTrace();
	}
}
}

Lanza una excepción:
Inserte la descripción de la imagen aquí

(4) Excepción de matriz fuera de límites:

public class Test{
    
    
	public static void main(String[] args){
    
    	
	try {
    
    
			String fo=args[1];
			System.out.println(args[0]);
		}
	catch(Exception e1) {
    
    
		e1.printStackTrace();
	}
}
}

Lanza una excepción:
Inserte la descripción de la imagen aquí

(5) Excepción de conversión de clase
Si la conversión de clase se realiza de manera inapropiada, se producirá una excepción de conversión de clase. En el siguiente código, la cadena se convierte en la clase Integer, que no puede lograr directamente el operador de conversión.

public class Test{
    
    
	public static void main(String[] args){
    
    	
	try {
    
    
		Object x = new String("String");
		System.out.println((Integer) x);
		}
	catch(Exception e1) {
    
    
		e1.printStackTrace();
	}
}
}

Se lanza una excepción en este momento:
Inserte la descripción de la imagen aquí

4. Ejemplo de excepción personalizada Creé
una excepción cuyo valor no puede ser igual a 4:

class EqualsFourException extends Exception{
    
    
	EqualsFourException(String msg){
    
    
		super(msg);
	}
	
}//继承异常祖先类

public class Test{
    
    
	public static void main(String[] args)throws EqualsFourException{
    
    	
	try {
    
    
			int a=0;
			while(a!=5) {
    
    
				a++;
				if(a==4)
					throw new EqualsFourException("a等于4");
			}
		}
	catch(Exception e1) {
    
    
		e1.printStackTrace();
	}
}
}

Cuando el valor de a es 4 durante el ciclo de autoincremento, se lanzará una excepción:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/HiphopHarris/article/details/109322472
Recomendado
Clasificación