Camino de aprendizaje de Java: 29 Control de excepciones

Aquí Insertar imagen Descripción

I. Visión general anormalidades

Después de aprender Java, el compilador a menudo se encuentran, lo que sugiere anormal, anormal cuando se produce un evento durante la ejecución del programa, se interrumpe el funcionamiento habitual de programa en ejecución corriente.
Por ejemplo, el código siguiente:

public class Exceptiontest {
    public static void main(String[] args) {
        int num=3/0; 
        System.out.println(num); 
    }
}

Los resultados sugieren que el funcionamiento anormal de la aritmética:
Aquí Insertar imagen Descripción
el programa se está ejecutando excepción se produce, el sistema no ejecuta abajo, por delante del fin, esta es la excepción.
Java es un lenguaje de programación orientado a objetos, por lo tanto, es una forma de instancia anormal de la clase se da en el lenguaje Java. Cuando se produce un error en un método, este método va a crear un objeto, y lo pasa a un sistema que ejecuta, este objeto es el objeto de excepción. mecanismo de manejo de excepciones, el código principal programa de lógica en una situación irregular puede ser separado, es decir, en el flujo principal, mientras que la escritura de código en el proceso de excepción otros métodos.
excepciones comunes son los siguientes.

II. Excepciones comunes

clase de excepción explicación
ClassCastException conversión de tipo anormal
ClassNotFoundException No he encontrado las anomalías categoría apropiada
ArithmeticException excepción aritmética
ArrayIndexOutOfBoundsException Transfronterizo gama anormal subíndice
ArrayStoreException La matriz contiene incompatible Lanza excepción
SQLException El funcionamiento incorrecto de la clase de base de datos
Excepción de puntero nulo excepción de puntero nulo
NoSuchFieldException El campo no es anormal para encontrar
NoSuchMethodException El método no lanza excepciones encontradas
NumberFormatException Conversión de cadenas a números de una excepción
NegativeArraySizeException El número de elementos de la matriz es excepciones negativos lanzados
StringIndexOutOfBoundsException Cadena índice de excepción gama lanzada
IOException entrada y salida anormal
IllegalAccessException No permitir el acceso a ciertos tipos de anormal
InstantiationException Cuando un tries aplicación para utilizar en la clase Clase newInstance () método crea una instancia de una clase, pero la clase de objeto especificado no se puede instanciar lanzado.
EOFException Fin de archivo anormal
FileNotFoundException Presentar anomalías que no se encuentran

III. Coger una excepción

estructura Java excepción idioma atrapamiento consta de tres partes intento, captura, por último, en el que el bloque try se almacena en puede ocurrir la excepción lenguaje Java, el bloque de captura después de que el bloque try, que se utiliza para excitar la excepción capturado, el finalmente bloque es la última instrucción ejecutada la gestión de excepciones estructura parte, independientemente de cómo se ejecutará el código de salida del bloque try bloque finally, el manejador de excepciones se divide a grandes rasgos en bloques de instrucciones y try-catch finally.

1. bloque try-catch de los estados

El código es ligeramente cambia:

public class Exceptiontest {
    public static void main(String[] args) {
        int num=3/0; 
        System.out.println(num); 
        System.out.println("继续运行"); 
    }
}

Ejecución de programas, una vez que aparecería la terminación anormal para funcionar.
Aquí Insertar imagen Descripción
Después de la adición de la declaración manejo de excepciones bloque de Tyr-trampa:

public class Exceptiontest { 
    public static void main(String[] args) {
    try {
        int num=3/0; 
        System.out.println(num); 
        }catch(Exception e) {
            e.printStackTrace();
        }     
    System.out.println("继续运行"); 
    }
}

Los resultados se pueden ver en funcionamiento, la salida sigue el programa del último mensaje, no a causa de terminación anormal.
Aquí Insertar imagen Descripción

Exception是try代码块传递给catch代码块的变量类型,e是变量名,catch代码块中的语句“e.printStackTrace()方法用于指出异常的类型,性质,栈层次已经出现在程序中的位置。”另外两个方法如下:
getMessage() : 输出错误性质
toString() : 给出异常的类型与性质。

bloque de instrucciones 2.finally

gestor de excepciones declaración completa debe estar contenido por último comunicado, independientemente de la presencia o ausencia de una excepción de programa se produce, y el try-catch bloque de instrucciones entre si la orden está terminado, será ejecutado por último comunicado.
En los siguientes cuatro casos especiales, finalmente, no se ejecuta el bloque:

在finally语句中发生了异常
在前面的代码中使用了System.exit()退出程序
程序所在的线程死亡
关闭CPU

IV. Excepción personalizada

Además de las excepciones incorporado clases de excepción, los usuarios también pueden personalizar, sólo tienen que hereda la clase de excepción puede ser.
Proceder de la siguiente manera:
1. Crear la clase de excepción personalizada.
2. En el método, se emite una palabra clave excepción objeto tiro.

3. Si el método de procesamiento actual se produce una excepción de excepciones, puede utilizar el bloque try-catch para detectar y proceso de la sentencia, o por palabra clave genera una excepción a ser lanzado para indicar la persona que llama método en un comunicado en el método, continuar con el paso siguiente operación.

4. capturar y manejar la excepción de la persona que llama de anormal.

Por ejemplo:

//创建自定义异常类
class MyException extends Exception{
    public MyException(String ErrorMessage) {
    super(ErrorMessage); 
    }
}

//在方法中通过throw关键字抛出异常对象

public class Exceptiontest {
    static int avg(int number1,int number2) throws MyException{
    if (number1 < 0 || number2 < 0) {
        throw new MyException("不可以使用负数"); 
    }
    if (number1 > 100 || number2 > 100) {
        throw new MyException("数值太大了"); 
    }
    return (number1 + number2); 
    }
    public static void main(String[] args) {
        try {
            int num =avg(155,155); 
            System.out.print(num); 
        }catch(MyException e) {
         System.out.println(e);
        } 
    }
}

El resultado:
Aquí Insertar imagen Descripción

V. arrojado en el método

1. Uso de palabras clave se produce una excepción es lanzada

Cuando tiros palabra clave por lo general aplicado en la declaración del método para especificar un método que puede ser lanzado, la pluralidad de anomalías puede ser separado por comas.
Tales como:

int avg(int number1,int number2) throws MyException{
//   。。。。。。
}

使用throws关键字将异常抛给上一级后,如果不想处理该异常,可以继续向上抛出,但最终要有能够处理该异常的代码。

2. Utilice la palabra clave tiro lanzar una excepción

tirar palabra clave utilizada comúnmente en el cuerpo del método, y lanza un objeto de excepción. Programa para terminar inmediatamente la ejecución de una sentencia throw, la declaración no está detrás de él ejecutado. Por tiro después de lanzar una excepción, si quieres en el código anterior para capturar y gestionar las excepciones es necesario utilizar el método produce una excepción en los tiros de palabras clave con nombre para la excepción lanzada en una declaración del método , si quiere tirar de captura lanzar una excepción, debe utilizar el bloque try-catch.
Tales como:

if (number1 < 0 || number2 < 0) {
         throw new MyException("不可以使用负数"); 
     }

Si mal, por favor corríjanme crítica, la crítica de bienvenida.
Cada frase de texto: la vida no puede esperar a que alguien más para organizar, para la lucha y para luchar por su propia; sin importar el resultado es una tragedia, pero el consuelo es que siempre se vive una pena en este mundo. - Lu Yao, "Ordinary World"

Publicado 74 artículos originales · ganado elogios 180 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/Fdog_/article/details/104747293
Recomendado
Clasificación