try...catch异常捕获
- 这是没用catch修补代码
package com.catches;
import java.util.Scanner;
public class Demo01 {
//需求:输入两数,求两数的商
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
//判断录入的数是否整数
if (sc.hasNextInt()){
int num1 = sc.nextInt();
if(num1!=0){
System.out.println("请输入第二个整数:");
if (sc.hasNextInt()){
int num2 = sc.nextInt();
if (num2!=0){
System.out.println("商:"+num1/num2);
}else {
System.out.println("输入为0的数");
}
}else {
System.out.println("输入不是整数");
}
}else {
System.out.println("输入为0的数");
}
}else {
System.out.println("输入不是整数");
}
}
}
- 使用异常处理
package com.catches;
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
try{Scanner sc = new Scanner(System.in);
System.out.println("别怀疑,输入两个数:");
int num1 = sc.nextInt();
int num2 = sc.nextInt();
System.out.println("输入两个数的商是:"+num1/num2);
}catch(Exception ex){
//输出异常产生的包名,错误原因;没有行号
//System.out.println(ex);
//输出异常的错误原因;没有行号
//System.out.println(ex.getMessage());
//显示异常描述对应的字符串,如果没有就为null
//System.out.println(ex.getCause());
//这里最常用
//System.out.println(ex.fillInStackTrace());
//打印堆栈异常信息;后续继续执行
ex.printStackTrace();
//这里是抛出异常,后续代码不执行
//throw(ex);
System.out.println("1111111111");
}
}
}