前言
异常的类型也是分很多类型的
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界找到属于自己的天空!