基础打底
什么是异常
程序在运行时,出现了意料之外的运行状态,并阻止了程序正常执行。
异常关键字
Java中的异常通过
- try
- catch
- finally
- throw
- throws
注意
- catch:捕获遗产给,可以同时编写多个catch
- Exception: 只能写到最后一个catch中,其作用是为了兜底异常。
- finallly: 无法程序是否有异常发生,并且不论之前的try-catch语句块是否顺利执行完毕,都会执行finally语句。
- finally不会执行的四种特殊情况
- 在finally语句中发生了异常
- 在前面的代码中使用了System.exit()退出程序(System.exit(1)–小括号内非零的数字,异常退出;0正常退出
- 程序中所有的线程死亡
- 关闭CPU
异常的分类
Error
- 其出现意味着系统出现了不可控的错误,如:StackOverflowError、OutOfMemoryError等
- 这种情况出现程序无法处理,只能人工介入,对程序可能存在的问题进行分析。
执行以下代码,程序会崩溃。当程序崩溃时,方法的出口无法被执行。也就是说:这种异常无法被程序处理。
public static void errorTest(){
System.out.println("errorTest start....")
try{
throw new OutOfMemoryError();
}catch (Exception e){
e.printStackTrace();
}
System.out.printlu("errorTest end.....")
}
Exception
- 又分为checked异常(受检异常)和unchecked(非受检异常)
- checked异常,需要在代码中显示处理,否则编译会报错
- unchecked异常,
如何声明以及抛出异常
1.声明异常
使用throws关键字声明异常:通常应用在声明方法时,多个异常使用逗号隔开,声明的异常不需要解决,谁调用这个方法,谁解决。
public static void MyException () throws Exception{ 方法体 }
2.捕获异常
使用throw关键字捕获异常: throw now 异常类型,与throws声明的异常类型一致;通常在应用
public class TThrow{ public void setAge(int age) }