Java中异常以及关键字
一、什么是异常: 异常指程序运行中发生的意外,会中断程序。 二、异常的五大关键字 1.try:存放可能发生异常的代码块(当try中发生异常时会立即执行catch中的代码) 2.catch:捕获并处理异常 3.finally:无论如何都要执行的代码,除非Java虚拟机退出 4.throws:声明异常,将方法可能发生的异常列举出来 5.throw:抛出异常,自定义异常 三、常见的异常类型 1.Exception :所有异常的父类 2.ArithmeticException:算数异常 不符合数学的相关规定 3.ArrayIndexOutOfBoundsException;数组下标越界 4.NullPointerException:空指针异常 Pet pet =null pet.age=9; 5.ClassNotFoundException:加载的类找不到 6.IllegalArgumentException:方法接收到非法参数 7.ClassCastException:类的异常转换 dog–>Cat 8.NumberFormatException:数据转化异常 “fs”–>int 四、异常处理机制三个模块的搭配问题 1.try必须有 2.try不能独立存在 五、异常的执行顺序 try–catch–finally 1.有异常:try–>catch–>finally 2.无异常:try–>finally 3.try块一旦发生异常会立即跳入catch进行处理 六、多重catch 1.使用场景:一段代码可能发生多种不同类型的异常时 2.摆放顺序:先子后父,将最可能发生的异常往前放 七、异常的分类 1.throwable:错误和异常的父类 2.Error:错误 程序自身无法解决的严重问题 3.Exception:异常 八、throw和throws的区别 4.检查异常:SQLException+ClassNotFoundException 1.throw: 抛出一个异常,可以是系统定义的,也可以是自己定义的。下面举两个例子: 2.throws:(针对一个方法抛出的异常) 抛出一个异常,可以是系统定义的,也可以是自己定义的。 如果是系统异常的话可以什么都不用做,也可以针对方法抛出一个异常,因为系统异常是可以被系统自动捕获的,所以这个异常究竟是要在方法内部解决还是交给上层函数去解决其实效果是一样的。但是我查了很多资料,即使会抛出异常能被系统所捕获的话还是建议针对方法写一个throws,因为这样在完成一个大型任务的时候可以让别的程序员知道这里会出现什么异常。 如果是自己定义的异常,则必须要用throws抛出该方法可能抛出的异常,否则编译会报错。