在本题中,要考虑两个异常
- 输入类型不匹配(InputMismatchException)
- 除数为0 (除数为0的异常需要自定义)
package am;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//求两个数的商(要求考虑异常)
Scanner input=new Scanner(System.in);
try{
System.out.println("请输入两个数:");
int num1=input.nextInt();
int num2=input.nextInt();
double rs=(double)num1/num2;
if(num2==0){
throw new ArithmeticException();//自定义异常
}
System.out.println((double)num1/num2);
//break;
}catch(InputMismatchException ex){
ex.printStackTrace();
System.out.println("输入不规范!!!");
//System.err.println("程序结束!!");
}catch(ArithmeticException ex){
System.out.println("除数不能为0!!!");
}//多个catch没有关系,但是顺序有关,一定要后catch父类,父类要在子类的后面
}
}
可以catch多个异常,但是父类异常一定要在最后,不然会报错哦!!!
输入正确运行结果:
输入类型不匹配运行结果:(输出了异常)
输入除数为0运行结果: