什么是异常,如何进行异常处理?
一.什么是异常
异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。
二.如何进行异常处理?
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语句不会执行的四种特殊情况
- 在finally语句块中发生了异常
- 在前面的代码中使用了System.exit()退出程序。(System.exit(1)——小括号内非零的数字,异常退出;0正常退出程序)
- 程序所在的线程死亡
- 关闭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声明的异常不需要解决,谁调用谁解决
