1 package exception; 2 3 import java.util.InputMismatchException; 4 import java.util.Scanner; 5 6 public class morecatch { 7 /*多重catch块 8 一段代码可能会引发多种类型的异常。这时,我们可以在一个try语句块后紧跟多个catch语句块,分别处理不同的异常。 9 这里,需要注意的是:多个catch块中处理的异常类型必须是从特殊到一般,最后一个一般是Exception类*/ 10 public static void main(String args []) 11 { 12 Scanner input = new Scanner(System.in); 13 while(true) 14 { 15 try 16 { 17 System.out.println("请输入S1的总学时:"); 18 int totalTime = input.nextInt(); 19 System.out.println("请输入总科目:"); 20 int totalCourse = input.nextInt(); 21 System.out.println("平均课时是:" + totalTime/totalCourse); 22 } 23 catch(InputMismatchException ex) 24 { 25 ex.printStackTrace(); 26 } 27 catch(ArithmeticException ex) 28 { 29 ex.printStackTrace(); 30 } 31 } 32 33 } 34 /*一段代码可能会引发多种类型的异常。这时,我们可以在一个try语句块后紧跟多个catch语句块,分别处理不同的异常。 35 这里,需要注意的是:多个catch块中处理的异常类型必须是从特殊到一般,最后一个一般是Exception类*/ 36 37 /*运行时,系统从上到下分别对每个catch语句块处理的异常类型进行检测,并执行第一个与异常类型匹配的catch语句。执行了 38 一个catch语句后,其后的catch语句将被忽略。匹配是指catch所处理的异常类型与所生成的异常类型完全一致或是它的超类。 39 如果程序产生的异常类型与catch处理的异常都不匹配的话,则这个异常将由JVM捕获并且处理,此时与不使用异常处理是 40 一致的。*/ 41 42 }