异常的处理
默认处理:我们自己不处理,当异常发生的时候,jvm会帮助我们进行异常的处理--->输出异常信息并且结束程序的执行。
在一般情况下,我们需要对程序的异常做出相应的处理
1、抛出异常:throws 对应的异常的类型。告诉方法的调用者,该方法存在异常。是否做出处理的方式,有方法的调用者决定
2、捕获异常:
try{
有可能发生异常的代码。
}catch(捕获的异常的类型 该类型的变量){
针对异常做出相应的处理。
}
将有可能发生异常的代码使用 try{}catch(){} 进行捕获,并做出相应的处理。程序可以正常顺序执行。
捕获异常的完整形式:
try{
有可能发生异常的代码
}catch(异常类型 该类型的变量){
异常的处理 只有当该类型的异常发生的时候,才会执行。
}finally{
在该处理方式结束之后,无论异常是否发生,都会执行的代码。
}
try{
}catch(){
}catch(){
}...
finally{
}
try{
}
finally{
}
jdk7异常捕获的新形式
try{
}catch(异常类型1 | 异常类型2 | 。。。|异常类型n 变量){
}finally{
}
package org.lanqiao.exception.demo;
public class ExceptionDemo3 {
public static void main(String[] args) {
int a = 10;
int b = 0;
System.out.println("除法运算开始");
int[] arr = {2,1,3};
/*try {
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("数组的索引超出了数组的范围。");
}*/
try {
System.out.println(arr[4]);
System.out.println("除法运算的结果为:"+a / b);
}catch(ArithmeticException e) {
System.out.println("发生了异常");
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("数组的索引超出了数组的范围。");
}catch(Exception e) {
System.out.println("Exception");
}
finally {
System.out.println("finally 执行.....");
}
System.out.println("除法运算结束");
}
}