一,代码中的异常
/*** 计算果商供应量*/import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入果实采摘量(公斤):");int weight = input.nextInt();System.out.print("请输入果商数(家):");int num = input.nextInt();System.out.println("每家果商供应" + weight / num + "公斤水果。");System.out.println("欢迎再来,预祝生意兴隆!");}}
接受的果商数值直接影响代码的运行结果
- 正整数:程序正常运行
- 零:程序出现异常

非数字:程序出现异常
因为疏漏造成程序运行出现异常,应该怎么解决?是否可以让程序自动判断异常和处理异常呢?
package JavaOOP06;import java.util.Scanner;/*** 计算每家果商供应量(使用if-else处理异常)*/public class Test2 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入果实采摘量(公斤):");int weight = 0;if (input.hasNextInt()) {weight = input.nextInt();} else {System.err.println("果实采摘量必须是整数!");System.exit(1);}System.out.print("请输入果商数(家):");int num = 0;if (input.hasNextInt()) {num = input.nextInt();if (num <= 0) {System.err.println("果商数必须大于零!");System.exit(1);}} else {System.err.println("果商数必须输入整数!");System.exit(1);}System.out.println("每家果商供应" + weight / num + "公斤水果。");System.out.println("欢迎再来,预祝生意兴隆!");}}
使用if else的缺陷
- 无法穷举所有的异常情况
- 影响程序可读性,维护难度高
解决方案:使用异常处理机制
二、什么是异常
异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序
