Java SE:异常

异常分两类:

  1. 编译异常:语法错误即本地信息有误会直接报错,程序都没法运行
  2. 运行异常:编译成功,但程序运行阶段出现问题

异常有Java提供的异常,也可以自己自定义异常,即自定义异常类 

//自定义年龄异常类,继承运行异常这个类
public class AgeException extends RuntimeException{public AgeException() {}public AgeException(String message) {super(message);}
}

  • 两种异常的区别:
  1. 当若执行Java本身的运行异常虚拟机会默认采取停止程序运行
  2. 而执行自定义异常会报异常信息,但程序可以不中断,继续执行

 自定义异常所用到的语句try/catch,好比switch语句

public static void main(String[] args) {//创建输入对象Scanner sc = new Scanner(System.in);//创建学生对象Student s = new Student();//创建适合的异常提醒类,异常要有继承//在合适的时候对异常进行抛出,将可能发生异常的代码写入try中,当代码异常发生会将异常抛出,然后catch进行捕获//try/catch好比if语句,满足就执行//try:将可能出现异常的代码写入//catch:对异常进行捕获,满足catch语句就进入,当执行完后直接跳出try/catch语句,继续执行后面代码//throw:在合适的时候将异常抛出,抛出后try里面的代码将不在往下执行,然后结束try/catch语句,执行下面的代码try {System.out.println("请输入姓名:");s.setName(sc.nextLine());System.out.println("请输入年龄:");s.setAge(Integer.parseInt(sc.nextLine()));} catch (NameException e) {e.printStackTrace();} catch (AgeException e) {e.printStackTrace();}System.out.println(s);}