import com.sun.xml.internal.ws.api.model.ExceptionType;

public class Example_4 {
    public static void main(String[] args) {
        //通过try...catch进行异常捕获
        //异常捕获之后,代码如果出现异常,程序不会结束,继续往下执行,影响的知识try...catch块中的代码
        try {
            int i = divide(4, 2);
            System.out.println(i);
            int j = divide(3, 0); //出现异常,导致程序结束运行
            System.out.println(j);
        }
//        catch (Exception ex){//使用的是异常父类来捕获异常的
//            ex.printStackTrace();//打印出具体的异常以及抛出异常的代码行数
//            System.out.println(ex.getMessage());//打印出异常
//            System.out.println(ex.toString());//打印出异常的具体类,以及异常
//        }
        catch (ArithmeticException ex){//使用明确的是异常类来捕获异常的
            ex.printStackTrace();//打印出具体的异常以及抛出异常的代码行数
            System.out.println(ex.getMessage());//打印出异常
            System.out.println(ex.toString());//打印出异常的具体类,以及异常
        }finally {
            System.out.println("不管try...catch中的代码有没有异常,一定会被执行finally");
        }
        System.out.println("如果上面的代码出现异常,则我不能够输出");
    }

    public static int divide(int x,int y) {
        return  x / y;
    }
}
import java.util.ArrayList;

public class Example_5 {
    public static void main(String[] args) {
        try {
            //如果调用的方法抛出类异常,则使用方法的杜甫则必须把异常进行捕获,或者继续抛出
            divide(4,2);
        }catch (Exception e){
            e.printStackTrace();
        }
//        divide(4,2);
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("mysql");
        //运行时异常,当前集合的下标最大灾难是1
        System.out.println(list.get(2));
    }
    //这个方法有可能会发生异常 使用的他的地方必须要进行异常捕获
    public static int divide(int x,int y) throws DivideByMinusException{
        if (y == 0){
            //自定义异常必须通过throw关键字抛出
            throw new DivideByMinusException("被除数不能为0");
        }
        return x / y;
    }
}
public class Example_6 {
    public static void main(String[] args) {

    }
    public static void divide_1(){
        try {
            System.out.println(5 / 0);
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }
    public static void divide_2(){
        try {
            System.out.println(5 / 0);
        }finally {
            System.out.println("不管程序有没有异常都会被执行");
        }
    }
    public static void divide_3(){
        try {
            System.out.println(5 / 0);
        }catch (Exception ex){
            ex.printStackTrace();
        }finally {
            System.out.println("不管程序有没有异常都会被执行");
        }
    }
}
public class DivideByMinusException extends Exception{
    public DivideByMinusException(){
        super();
    }

    public DivideByMinusException(String message){
        super(message);
    }
}
最后修改:2021 年 06 月 02 日 12 : 46 PM
如果觉得我的文章对你有用,请随意赞赏