JAVA异常处理试题及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.java 语言中,下列哪一子句是异常处理的出口 (C) A、try{…}子句 B、catch{…}子句 C、finally{…}子句 D、以上说法都丌对
5.下列程序的执行,说法错误的是 (C) public class MultiCatch
{ public static void main(String args[]) { try { int a=args.length; int b=42/a; int c[]={1}; c[42]=99; System.out.println(“b=”+b); } catch(ArithmeticException e) { System.out.println(“除 0 异常:”+e); } catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越边界异常:”+e); } } }
catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越界限异常:”+e); }
} public static void main(String args[]) { try { procedure(); int a=args.length; int b=42/a; System.out.println(“b=”+b); } catch(ArithmeticException e) { System.out.println(“除 0 异常:”+e); } }
{ System.out.println(“This is always printed”);
} i++; } }
三、判断题 1. ( F ) 程序中抛出异常时(throw …),只能抛出自己定义的异常对象。 2. ( T ) 一个异常处理中 finally 语句块只能有一个或者可以没有。 3.( T )异常类对象代表当前出现的一个具体异常。 4.( T )java 语言中的所有异常类都是 java.lang.Throwable 的子类。 5.( F ) 如果异常发生时,没有捕获异常的代码,程序会正常执行。
异常处理练习题
一、选择题 1.java 中用来抛出异常的关键字是 (C) A、try B、catch C、throw D、finally
2.关于异常,下列说法正确的是 (A) A、异常是一种对象 B、一旦程序运行,异常将被创建 C、为了保证程序运行速度,要尽量避免异常控制 D、以上说法都丌对
3.(A)类是所有异常类的父类。 A、Throwable B、Error C、Exception D、AWTError
C、产生异常的 try 块
D、×上面的说法都丌对
二、填空题 Java 异常处理 内部资料【机密】 交流 QQ 250586262 1、catch 子句都带一个参数,该参数是某个异常的类及其变量名,catch 用该参数去与 __出现异常_____对象的类进行匹配。 2、java 虚拟机能自动处理__运行异常_____异常。 3、变量属性是描述变量的作用域,按作用域分类,变量有局部变量、类变量、方法参 数和_______ 4、捕获异常要求在程序的方法中预先声明,在调用方法时用 try-catch-_finally_____语句捕 获并处理。
或它 子类的实例。 11、Throwable 类有两个子类:RunException___类和 Exception 类。 12、对程序语言而言,一般有编译错误和__运行____错误两类。 13、下面程序定义了一个字符串数组,并打印输出,捕获数组超越界限异常。请在横 线处填入适当的内容完成程序。 public class HelloWorld {
A、程序将输出第 15 行的异常信息 B、程序第 10 行出错 C、程序将输出“b=42”
D、程序将输出第 15 和 19 行的异常信息
6.下列程序的执行,说法正确的是 (D) class ExMulti {
static void procedure() {
try { int c[]={1}; c[42]=99; }
} A、程序只输出第 12 行的异常信息 B、程序只输出第 26 行的异常信息 C、程序将不输出异常信息 D、程序将输出第 12 行和第 26 行的异常信息
7.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。 class TrowsDemo {
static void procedure() throws IllegalAccessExcepton {
int i=0; String greetings[]= {
“Hello world!”, “No,I mean it!”, “HELLO WORLD!!”
}; while(i<4)
{ ____try________
{ System.out.println(greeting[i]); } ____catch__(ArrayIndexOutOfBoundsException e) { System.out.println(“Re-setting Index Value”); i=-1;} finally
5、java 语言认为那些可预料和不可预料的出错称为____异常_____ 6、按异常处理不同可以分为运行异常、捕获异常、声明异常和_抛出异常_____几种。 7、抛出异常的程序代码可以是_自定义的异常_____或者是 JDK 中的某个类,还可以是 JVM. 8、抛出异常、生成异常对象都可以通过__throws_______语句实现。 9、捕获异常的统一出口通过___finally______语句实现。 10、java 语言的类库中提供了一个___Throwable_______类,所有的异常都必须是它的实例
System.out.println(“inside procedure”); throw__new_____IllegalAccessException(“demo”);
} public static void main(String args[])
{ try { procedure(); } catch(IllegalAccessExcepton e) ___________ { System.out.println(“捕获:”+e); }
D、throw 子句
10.当方法遇到异常又不知如何处理时,下列哪种说法是正确的(C )
Leabharlann Baidu
A、捕获异常
B、抛出异常
C、声明异常
D、嵌套异常
11.哪个关键字可以抛出异常? (C)
A、transient B、 finally C、 throw D、 static
12.一个异常将终止( A)
A、整个程序
B、叧终止抛出异常的方法
调用此方法,并捕获异常。
4.自定义类 Sanj,其中有成员 x,y,z,作为三边长,构造方法 Sanj(a,b,c)分别给 x,y,z 赋值,方法求面积 getArea 和显示三角形信息(三个边长)showInfo,这 2 个方法中当三 条边丌能构成一个三角形时要抛出自定义异常 NotSanjiaoException,否则显示正确信 息。在另外一个类中的主方法中构造一个 Sanj 对象(三边为命令行输入的三个整数), 显示三角形信息和面积,要求捕获异常。
}
8.对于 catch 子句的排列,下列哪种是正确的(B )
A、父类在先,子类在后
B、子类在先,父类在后
C、有继承关系的异常不能在同一个 try 程序段内
D、先有子类,其他如何排列都无关
9.在异常处理中,如释放资源、关闭文件、关闭数据库等由(C )来完成。
A、try 子句
B、catch 子句
C、finally 子句
四、编程题 1.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。[提示:用 错误数据测试,即可得到异常类名,运行时主方法参数输入 abc 测试] public class StringIndexOutOf {
public static void main(String args[]) { System.out.println("字符串索引越界异常"); String str=args[0]; System.out.println(“第四个字符为 ”+str.charAt(3)); int aa=Integer.parseInt(args[0]); System.out.println(“平方为 ”+aa*aa); } } 2. 从命令行得到 5 个整数,放入一整型数组,然后打印输出,要求:如果输入数据 丌为整数,要捕获 Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参 数丌足 5 个的异常(数组越界),显示“请输入至少 5 个整数”。 3.写一个方法 void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果丌能则抛出异常 IllegalArgumentException,显示异常信息 a,b,c+”丌能构成三角 形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,
5.下列程序的执行,说法错误的是 (C) public class MultiCatch
{ public static void main(String args[]) { try { int a=args.length; int b=42/a; int c[]={1}; c[42]=99; System.out.println(“b=”+b); } catch(ArithmeticException e) { System.out.println(“除 0 异常:”+e); } catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越边界异常:”+e); } } }
catch(ArrayIndexOutOfBoundsException e) { System.out.println(“数组超越界限异常:”+e); }
} public static void main(String args[]) { try { procedure(); int a=args.length; int b=42/a; System.out.println(“b=”+b); } catch(ArithmeticException e) { System.out.println(“除 0 异常:”+e); } }
{ System.out.println(“This is always printed”);
} i++; } }
三、判断题 1. ( F ) 程序中抛出异常时(throw …),只能抛出自己定义的异常对象。 2. ( T ) 一个异常处理中 finally 语句块只能有一个或者可以没有。 3.( T )异常类对象代表当前出现的一个具体异常。 4.( T )java 语言中的所有异常类都是 java.lang.Throwable 的子类。 5.( F ) 如果异常发生时,没有捕获异常的代码,程序会正常执行。
异常处理练习题
一、选择题 1.java 中用来抛出异常的关键字是 (C) A、try B、catch C、throw D、finally
2.关于异常,下列说法正确的是 (A) A、异常是一种对象 B、一旦程序运行,异常将被创建 C、为了保证程序运行速度,要尽量避免异常控制 D、以上说法都丌对
3.(A)类是所有异常类的父类。 A、Throwable B、Error C、Exception D、AWTError
C、产生异常的 try 块
D、×上面的说法都丌对
二、填空题 Java 异常处理 内部资料【机密】 交流 QQ 250586262 1、catch 子句都带一个参数,该参数是某个异常的类及其变量名,catch 用该参数去与 __出现异常_____对象的类进行匹配。 2、java 虚拟机能自动处理__运行异常_____异常。 3、变量属性是描述变量的作用域,按作用域分类,变量有局部变量、类变量、方法参 数和_______ 4、捕获异常要求在程序的方法中预先声明,在调用方法时用 try-catch-_finally_____语句捕 获并处理。
或它 子类的实例。 11、Throwable 类有两个子类:RunException___类和 Exception 类。 12、对程序语言而言,一般有编译错误和__运行____错误两类。 13、下面程序定义了一个字符串数组,并打印输出,捕获数组超越界限异常。请在横 线处填入适当的内容完成程序。 public class HelloWorld {
A、程序将输出第 15 行的异常信息 B、程序第 10 行出错 C、程序将输出“b=42”
D、程序将输出第 15 和 19 行的异常信息
6.下列程序的执行,说法正确的是 (D) class ExMulti {
static void procedure() {
try { int c[]={1}; c[42]=99; }
} A、程序只输出第 12 行的异常信息 B、程序只输出第 26 行的异常信息 C、程序将不输出异常信息 D、程序将输出第 12 行和第 26 行的异常信息
7.下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。 class TrowsDemo {
static void procedure() throws IllegalAccessExcepton {
int i=0; String greetings[]= {
“Hello world!”, “No,I mean it!”, “HELLO WORLD!!”
}; while(i<4)
{ ____try________
{ System.out.println(greeting[i]); } ____catch__(ArrayIndexOutOfBoundsException e) { System.out.println(“Re-setting Index Value”); i=-1;} finally
5、java 语言认为那些可预料和不可预料的出错称为____异常_____ 6、按异常处理不同可以分为运行异常、捕获异常、声明异常和_抛出异常_____几种。 7、抛出异常的程序代码可以是_自定义的异常_____或者是 JDK 中的某个类,还可以是 JVM. 8、抛出异常、生成异常对象都可以通过__throws_______语句实现。 9、捕获异常的统一出口通过___finally______语句实现。 10、java 语言的类库中提供了一个___Throwable_______类,所有的异常都必须是它的实例
System.out.println(“inside procedure”); throw__new_____IllegalAccessException(“demo”);
} public static void main(String args[])
{ try { procedure(); } catch(IllegalAccessExcepton e) ___________ { System.out.println(“捕获:”+e); }
D、throw 子句
10.当方法遇到异常又不知如何处理时,下列哪种说法是正确的(C )
Leabharlann Baidu
A、捕获异常
B、抛出异常
C、声明异常
D、嵌套异常
11.哪个关键字可以抛出异常? (C)
A、transient B、 finally C、 throw D、 static
12.一个异常将终止( A)
A、整个程序
B、叧终止抛出异常的方法
调用此方法,并捕获异常。
4.自定义类 Sanj,其中有成员 x,y,z,作为三边长,构造方法 Sanj(a,b,c)分别给 x,y,z 赋值,方法求面积 getArea 和显示三角形信息(三个边长)showInfo,这 2 个方法中当三 条边丌能构成一个三角形时要抛出自定义异常 NotSanjiaoException,否则显示正确信 息。在另外一个类中的主方法中构造一个 Sanj 对象(三边为命令行输入的三个整数), 显示三角形信息和面积,要求捕获异常。
}
8.对于 catch 子句的排列,下列哪种是正确的(B )
A、父类在先,子类在后
B、子类在先,父类在后
C、有继承关系的异常不能在同一个 try 程序段内
D、先有子类,其他如何排列都无关
9.在异常处理中,如释放资源、关闭文件、关闭数据库等由(C )来完成。
A、try 子句
B、catch 子句
C、finally 子句
四、编程题 1.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。[提示:用 错误数据测试,即可得到异常类名,运行时主方法参数输入 abc 测试] public class StringIndexOutOf {
public static void main(String args[]) { System.out.println("字符串索引越界异常"); String str=args[0]; System.out.println(“第四个字符为 ”+str.charAt(3)); int aa=Integer.parseInt(args[0]); System.out.println(“平方为 ”+aa*aa); } } 2. 从命令行得到 5 个整数,放入一整型数组,然后打印输出,要求:如果输入数据 丌为整数,要捕获 Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参 数丌足 5 个的异常(数组越界),显示“请输入至少 5 个整数”。 3.写一个方法 void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形, 如果丌能则抛出异常 IllegalArgumentException,显示异常信息 a,b,c+”丌能构成三角 形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,