什么是异常,如何进行异常处理?

一.什么是异常

异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。

二.如何进行异常处理?

Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws

语法:

public class Test {
    public static void main(String[] args) {
        try {
            //程序代码块
        }catch (异常类型 异常名){
            //对异常进行处理的代码段
        }catch(Exception e){
            //对异常进行处理的代码段
        }finally {
            //程序代码段
        }
    }
}

注意:

catch:捕获异常,可以同时编写多个catch。

Exception 只能写到最后一个catch中,其作用是为了兜底异常。

finally:无论程序中有无异常发生,并且无论之前的try-catch语句块是否顺利执行完毕,都会执行finally语句

finally语句不会执行的四种特殊情况

  1. 在finally语句块中发生了异常
  2. 在前面的代码中使用了System.exit()退出程序。(System.exit(1)——小括号内非零的数字,异常退出;0正常退出程序)
  3. 程序所在的线程死亡
  4. 关闭cpu

三.如何声明异常以及抛出异常

声明异常使用关键字:throws;语法:访问修饰符 返回值类型 方法名(参数列表) throws 异常类型

抛出异常使用关键字:throw。语法:throw new 异常类型,与throws声明的异常类型一致

1.使用throws关键字声明异常:通常应用在声明方法时,多个异常使用逗号隔开,声明的异常不需要解决,谁调用这个方法,谁解决。

public static void MyException() throws Exception {
       //方法体
}

2.使用throw关键字抛出异常:通常应用在方法体中,且只能抛出一个异常.与throws配合使用。

//方法类
public class TThrow {
    public void setAge(int age) throws Exception {
            if (age>0 && age<=100){
                System.out.println("年龄对了");
            }else{
                //声明异常类型
                throw new Exception("年龄必须在1~100之间");
            }
    }
}
//测试类
public class TestTThrow {
    public static void main(String[] args) throws Exception {
        Scanner input=new Scanner(System.in);
        TThrow tt=new TThrow();
        System.out.println("请输入年龄:");
        tt.setAge(input.nextInt());
    }
}

throw 和throws的区别

位置,throw写在方法体中,throws写在方法上

数量,throws可以声明多个,throw只能抛出一个异常

throws可以单独使用,单throw不可以单独使用,需要配合throws使用。

throws声明的异常不需要解决,谁调用谁解决

四.常见的异常类型

异 常 类 型 说 明 Exception 异常层次结构的父类 ArithmeticException 算术错误情形,如以零作除数 ArrayIndexOutOfBoundsException 数组下标越界 NullPointerException 尝试访问 null 对象成员 ClassCastException 对象强制类型转换出错 NumberFormatException 数字格式转换异常,如把"abc"转换成数字 ClassNotFoundException 不能加载所需的类 IllegalArgumentException 方法接收到非法参数

 五.异常的分类

经验分享 程序员 微信小程序 职场和发展