异常案例
1.演示一个算数异常
1.逗比除法计算机
package com.kkb;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("欢迎来到逗比除法计算器");
System.out.println("请输入被除数:");
int x =input.nextInt();
System.out.println("请输入除数:");
int y =input.nextInt();
int z =x/y;
System.out.println("计算结果:"+z);
}
}
演示效果 一:正常使用计算机
演示效果二:使用时出现异常
2.处理异常
package com.kkb;
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("欢迎来到逗比除法计算器");
System.out.println("请输入被除数:");
int x =input.nextInt();
System.out.println("请输入除数:");
int y =input.nextInt();
while (y==0){
System.out.println("除数不能为0,请重新输入");
y =input.nextInt();
}
int z =x/y;
System.out.println("计算结果:"+z);
}
}
演示处理异常之后的效果
2. 演示一个数组异常
1.遍历一个数组
package com.kkb;
public class Demo02 {
public static void main(String[] args) {
int[] arr = {100,200,300,400,500};
for (int i =0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
遍历结果
2.数组下标越界:ArrayIndexOutOfBoundsException
package com.kkb;
public class Demo02 {
public static void main(String[] args) {
int[] arr = {100,200,300,400,500};
arr = new int[]{100,200,300,400};
for (int i =0;i<5;i++){
System.out.println(arr[i]);
}
System.out.println("嘿嘿");
}
}
异常效果演示
报错ArrayIndexOutOfBoundsException(数组下标越界),且嘿嘿,没有出现
3.解决数组下标越界
package com.kkb;
public class Demo02 {
public static void main(String[] args) {
int[] arr = {100,200,300,400,500};
arr = new int[]{100,200,300,400};
for (int i =0;i<arr.length;i++){
System.out.println(arr[i]);
}
System.out.println("嘿嘿");
}
}
演示运行效果
案例总结:一旦产生了异常之后,异常之后的语句将不再执行了。所以现在的程序并没有正确的执行完毕之后就退出了。那么,为了保证程序出现异常之后,仍然可以正确的执行完毕,我们需要采用一套异常的处理机制。
异常处理机制
1.处理异常(try+catch+finally)
异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。
如果要想对异常进行处理,则必须采用标准的处理格式,处理格式语法如下:
try{
// 有可能发生异常的代码段
}catch(异常类型1 对象名1){
// 异常的处理操作
}catch(异常类型2 对象名2){
// 异常的处理操作
} ...
finally{
// 异常的统一出口,无论是否发生异常,finally里的代码都会作为try catch语句块最后的收尾代码。
}