Java语言程序设计第1-6章 课后习题答案

D:\\JAVA\\XT>java Exer6_2 正常:d=16 异常处理结束! 算术异常! 异常处理结束! 正常:d=12 异常处理结束! 下标越界异常! 异常处理结束! 6-3

public class Exer6_3 {

public static void main(String args[]) {

int array1[]={6,0,8}; for(int i=0;i<=;i++) {

try {

int d=100/array1[i]; \正常:d=\ }

catch(RuntimeException e) {

\异常:\ }

finally {

\异常处理结束!\\n\ } } } }

运行该程序后,输出结果如图所示:

D:\\JAVA\\XT>java Exer6_3 正常:d=16 异常处理结束! 异常: zero 异常处理结束! 正常:d=12 异常处理结束! 异常:异常处理结束! 6-4

public class Exer6_4 {

public static void Test() {

int a[]=new int[3]; for(int i=0;i<=;i++) {

try {

a[i]=i+5;

\正常:a[\ }

catch(ArrayIndexOutOfBoundsException e) {

\异常:+()\ throw e; } } }

public static void main(String args[]) {

try {

Test(); }

finally {

\异常处理结束!\\n\ } } }

运行该程序后,输出结果如图:

D:\\JAVA\\XT>java Exer6_4 正常:a[0]=5 正常:a[1]=6 正常:a[2]=7 异常: 3 异常处理结束! Exception in thread “main” at <:10> at 6-5

class myException extends Exception {

static int a=0

myException(String s) {

super(s); a++; }

String show() {

return\自定义异常出现的次数:\ } }

Public class Exer6_5 {

static void Test() throws myException {

myException e;

e=new myException(\自定义异常\\n\ throw e; }

Public static void main(String args[]) {

for(int i=0;i<3;i++) {

try {

Test(); }

catch(myException e) {

运行该程序后,输出结果如图所示:

D:\\JAVA\\XT>java Exer6_5 自定义异常出现的次数:1 myException:自定义异常 自定义异常出现的次数:2 myException:自定义异常 自定义异常出现的次数:3 myException:自定义异常 5.简单回答题

5 检测异常事件必须使用什么语句

答:try语句

6 catch()方法的作用是什么该方法用户能否调用

答: 用来处理try块中检测出的异常事件。 7 catch()方法中异常类型应与什么相符

答:与生成的异常事件类型相符。 8 异常示被捕获到将会出现什么现象

答:try语句后边的惯常处理代码将不被执行,通常使用finally语句提供一个统一出口。

9 在一个try语句的程序代码块中可以捕获多个异常吗

答:可以

10 使用throw语句抛出的是类型还是对象

答:抛出的是对象。

11 捕获到的异常还可以再抛出吗

答:可以。

12 Finally语句块中的代码何时被执行

答:在异常事件处理的方法catch()执行后执行。 13 语句throw的作用是什么

答:抛出所检测到的异常。 14 异常类Exception的父类是什么

答:是Throwable类。 编程题

1. 编程实现下述异常,并输出显示适当的错误信息。

2-1 数组下标越界异常ArrayIndexOutOfBoundsException类型。例如,

char ch[]=new char[5];

ch[5]='m';NullPointerException.

6-2 定义一个circle类,其中有求面积的方法,当圆的半径小于0时,抛出一个自定义的异常。编程实现之: 程序内容如下;

class Circle extends Exception {

double r; Circle()

{ }

Circle(double i) {r=i;}

public double getr() {return r;}

public double Area() {

return *r*r; }

}

public class pro6_3 {

public static void main(String args[]) {

Circle c=new Circle; try {

if()<0) {

Circle ee=new Circle(); throw ee; }

catch(Circle e) {

\自定义异常:\ } } }

运行该程序后,输出显示如下结果: 自定义异常:Circle 如果将语句

Circle c=new Circle; 必为

Circle c=new Circle;

输出结果如何请读者上机试试。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4