java异常类匿名类实验报告.docVIP

  • 5
  • 0
  • 约5.44千字
  • 约 10页
  • 2017-02-09 发布于重庆
  • 举报
java异常类匿名类实验报告

实验十四 异常类、匿名类 课程名称: 面向对象程序设计 实验项目名称: 实验十四 异常类、匿名类 【实验目的】 【实验】 一、异常类实验 1.编译下面的程序,并回答问题。 class ExceptionTest1{ public static void main(String[] args){ int a=0,b=0; try{ a = Integer.parseInt(args[0]); // 语句1 b = 10; // 语句2 } catch(NumberFormatException e){ a = 1; } System.out.println(a); System.out.println(b); } } (1)执行上述ExceptionTest1类(在命令提示符下敲入java ExceptionTest1 99) 运行结果: (2)执行上述ExceptionTest1类(在命令提示符下敲入java ExceptionTest1 a) 运行结果: (3)比较上面两次运行的结果,说明原因。(思考:执行语句1时发生异常,语句2执行没有?) 执行语句1时没有发生异常,语句2执行发生异常。因为在源代码中写有 try{ a = Integer.parseInt(args[0]); // 语句1 b = 10; // 语句2 } catch(NumberFormatException e){ a = 1; } 当在运行代码时,若在文件名后面输入的是整数,则不会发生异常,try代码块的下面的代码继续执行,而当输入的是字符或是字符串时,try代码块会捕获错误的信息,但是并没有运行下面的代码,如果try代码块中添加了finally部分,将原来的System.out.println(a); System.out.println(b);填入到finally中,则无论有没有发生异常,都能执行到finally中的代码。 2.编译下面的程序,并回答问题。 class ExceptionTest2{ public static void main(String[] args){ int a=0; try{ a = Integer.parseInt(args[0]); } } } 编译上述程序,是否出错? 出错 如果出错, 给出出错信息(即javac编译该文件出错信息): 分析为何出错? 出错原因:try和catch或finally是成对出现的,不能出现了try,而后面就没有了catch或者finally (3)如果将程序改写为: class ExceptionTest2{ public static void main(String[] args){ int a=0; try{ a = Integer.parseInt(args[0]); } catch(NumberFormatException e){ a = 1; } } } 上述程序是否编译出错? 为什么? 上述程序中try与catch是成对出现的,所以编译不会出错。 (4)如果将程序改写为: class ExceptionTest2{ public static void main(String[] args){ int a=0; try{ a = Integer.parseInt(args[0]); } finally{ a = 1; } } 上述程序是否编译出错? 不出错 为什么? 当出现了try时,后面要么接catch,要么接finally,但是不能这两个都不接。 (4) 如果将程序改写为: class ExceptionTest2{ public static void main(String[] args){ int a=0; try{ a = Integer.parseInt(args[0]); } catch(Exception e){ a = 1; } catch(NumberFormatException e){ a = 2; } } } 上述程序是否编译出错? 分析为何出错, 如

文档评论(0)

1亿VIP精品文档

相关文档