例5.7 用for 和switch 编写程序,程序运行结果如下: Test No: 1 零作除数! 在finally 块中! Test No: 2 数组下标越界! 在finally 块中! Test No: 3 下标越界! 在finally 块中! Test No: 4 在finally 块中! public class testFinally { public static void main(String args[ ]) { int a,b=0; for(int i=0;i<=3;i++){ System.out.println("Test No: "+(i+1)); try{ switch(i){ case 0:a=3/b; break; case 1:int c[ ]=new int[10];c[10]=0; break; case 2:char ch="ABC".charAt(99); break; case 3:return;} } catch(ArithmeticException e) { System.out.println("零作除数!");} catch(ArrayIndexOutOfBoundsException e) { System.out.println("数组下标越界!");} catch(IndexOutOfBoundsException e) { System.out.println("下标越界!");} finally{ System.out.println("在finally 块中!");} } } } 例5.10 由调用者进行throws 子句中的异常处理。 import java.io.*; public class testThrows { public static String readString( ) throws IOException{ int ch; String r=""; boolean done=false; while(!done){ ch=System.in.read( ); if(ch<0 || ch==0xd) done=true; else r = r + (char) ch;} return r; } public static void main(String args[ ]) { String str; try{ str=readString( );} catch(IOException e){ System.out.println("产生了输出/输出异常"); return;} System.out.println("整数是:"+Integer.parseInt(str)); } } 例5.11 异常处理实例。 import java.io.IOException; class KeyboardInput { static int ReadInt() throws Exception{ String str = ReadLine(); try{ return new Integer(str).intValue();} catch(NumberFormatException e){ throw new Exception("输入数据错误");} } static double ReadDouble() throws Exception { String str = ReadLine(); try{ return new Double(str).doubleValue();} catch(NumberFormatException e){ throw new Exception("输入数据错误");} } static String ReadLine(){ char in; String inputstr = ""; try{ in = (char)System.in.read(); while(in!='\n'){...