JAVA入门-------OOP(异常处理)

前言

异常的类型也是分很多类型的
Throwable:异常的顶级超类,大白话就是异常类型的祖宗/鼻祖

Error:系统异常,无法修复。当出现这个类的异常时也是我们没办法解决的,主要是因为硬件问题,所以我们一般不需要去理会

Exception:可修复错误。这个异常是我们需要去解决的,出现的原因是因为我们的代码出现了逻辑类的错误

RuntimeException:运行期异常

异常处理的方法有两种:捕获异常,抛出异常
捕获异常就是简单来说就是通过手段自己查找和解决,而抛出异常就更好理解了,就是把异常抛给调用方
废话不多说!往下看!

方法一:抛出异常

在方法签名的末尾处用throws关键字+异常类型来抛出,当可能出现多种类型的异常要抛出的时候可以用 ( , )逗号隔开

	/**
     * 存在BUG的逻辑
     */
    public static void method() throws ArithmeticException,InputMismatchException{
    
    
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int a = sc.nextInt();
        System.out.println("请输入第二个整数");
        int b = sc.nextInt();
        System.out.println(a+"/"+b+"="+(a/b));
    }

还有一种方式就是我们可以利用多态的想法抛出超类Exception异常,这样子只要出现他的子类中的任何一种异常都可以抛出

	/**
     * 存在BUG的逻辑
     */
    public static void method() throws Exception{
    
    
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int a = sc.nextInt();
        System.out.println("请输入第二个整数");
        int b = sc.nextInt();
        System.out.println(a+"/"+b+"="+(a/b));
    }

方法二:捕获异常

捕获异常是最好的一种解决异常的办法也是最建议的,当然也有特定的语法

/*
	语法:
	try{
	可能出现异常的代码段
	}catch(异常的类型 e){
		解决方案,也就是出现异常以后会执行的代码段
	}
	catch可以写多个
*/
public static void method1(){
    
    
        try {
    
    
            method();
        }catch (InputMismatchException e){
    
    
            System.out.println("请输入两个整数!");
        }catch (ArithmeticException e){
    
    
            System.out.println("被除数不能为零!请输入正确的数学除法格式!");
        }catch (Exception e){
    
    //接下来在不知道还有几个异常,什么异常的时候,通用的解决方案---多态----不关心子类类型,把子类当作父类
           System.out.println("请按正确的格式输入!");
        }
}

结语

以上就是异常处理的两种官方的处理方式咯!若博主写的有什么地方不恰当的地方请评论走一波!谢谢!
技术分享,共同进步!祝我们都能在IT界找到属于自己的天空!

Guess you like

Origin blog.csdn.net/qq_54177999/article/details/115668487