JAVA基础第6章异常处理机制_练习题
JAVA第六章习题

第六章异常和异常处理一、选择题1、下列关于异常和异常类的描述中,错误的是 D 。
A.异常是某种异常类的对象B.异常类代表一种异常事件C.异常对象中包含有发生异常事件的类型等重要信息D.对待异常的处理就是简单地结束程序2、下列关于异常处理的描述中,错误的是 C 。
A.程序运行时出现的异常是通过系统默认的异常处理程序进行处理的。
B.在程序中可以使用try-catch语句捕捉异常和处理异常事件C.对于捕获的异常只能在当前方法中处理D.使用throw语句可将异常抛出到调用当前方法的方法中处理二、简答题1、简述Java的异常处理机制。
Java系统中定义一些用来处理异常的类,称为异常类,该类中通常包含产生某种异常的信息和处理异常的方法等内容。
当程序运行中发生了可识别的异常时(该错误有一个异常类与之相对应时)系统就会产生一个相应的该异常类的对象,简称异常。
系统中一旦产生了一个异常,便去寻找处理该种异常的处理程序,以保证不产生死机,从而保证了程序的安全运行。
这就是Java的异常处理机制.三、写出运行结果题1、public class Exam6_4{ public static void main(String args[]){ fun(0);fun(1);fun(2);fun(3);}static void fun(int i){ System.out.println("调用方法:fun"+i);try{if(i==0) System.out.println("没有异常");else if(i==1){int a=0; int b=10; b/=a;}else if(i==2){int m[]=new int[5]; m[5]=100;}else if(i==3){String str="56k9"; intn=Integer.parseInt(str);}}catch(ArithmeticException e){System.out.println("捕捉异常:"+e.getMessage());} catch(ArrayIndexOutOfBoundsException e){System.out.println("捕捉异常:"+e);}catch(NumberFormatException e){System.out.println("捕捉异常:"+e);}finally{System.out.println("处理完毕! ");}}}2、public class Exam6_5{ public static void main(String args[]){ try{fun1();}catch(ArithmeticException e){System.out.println("捕捉异常:"+e.getMessage());} try{fun2( );}catch(ArrayIndexOutOfBoundsException e){System.out.println("捕捉异常:"+e);}finally {System.out.println("处理完毕! ");}}static void fun1() throws ArithmeticException{ System.out.println("调用方法:fun1");int a=0; int b=10; b/=a;throw new ArithmeticException();}static void fun2() throws ArrayIndexOutOfBoundsException { System.out.println("调用方法:fun2");int m[]=new int[5]; m[5]=100;throw new ArrayIndexOutOfBoundsException();}}。
java考试题库第六章.docx

第六章异常和异常处理一选择题6・1 .下列关于异常的描述中,错误的是(B)A.异常是一种经过修正后程序仍可执行的错误B.异常是一种程序在运行中出现的不可恢复执行的错误C.不仅Java语言有异常处理,C++语言也有异常处理D.岀现异常不是简单结束程序,而是执行某种处理异常的代码,设法恢复程序的执行6・2.下列关于异常处理的描述中,错误的是(D)A.程序运行时异常由Java虚拟机自动进行处理B.使用try-catch-finally语句捕获异常C.使用throw语句抛出异常D.捕获到的异常只能用当前方法中处理,不能用其他方法中处理6・3.下列关于try-catch-finally语句的描述中,错误的是(A)A・try语句后面的程序段将给出处理异常的语句B・catch ()方法跟在try语句后面,它可以是一个或多个C. catch ()方法有一个参数,该参数是某种异常类的对彖D・finally语句后面的程序段总是被执行的,该语句起到提供统一接口的作用6・4.下列关于抛出异常的描述中,错误的是(D)A.捕捉到发牛的异常可在当前方法中处理,也可以抛到调用该方法的方法中处理B.在说明要抛出异常的方法吋应加关键字throw<异常列表〉C.v异常列表〉中可以有多个用逗号分隔的异常D.抛岀异常的方法中要使用下述抛出异常语句:throw<异常名〉;其中,v异常名>是异常类的类名6・5.下列关于用户创建自己的异常描述中,错误的是(D)A.创建自己的异常应先创建一个异常类B.为实现抛出异常,须在可能抛出异常的方法中书写throw语句C.捕捉异常的方法是使用try-catch-finally语句格式D.使用异常处理不会使整个系统更加安全和稳定二判断题6・1 .异常是一种特殊的运行错误的对象。
(对)62异常处理可以使整个系统更加安全和稳定。
(对)6・3.异常处理是在编译时进行的。
(错)6-4.Java语言中异常类都是ng.Throwable的子类。
java异常处理练习题

java异常处理练习题Java异常处理练习题Java是一种面向对象的编程语言,广泛应用于软件开发领域。
在Java编程中,异常处理是一个非常重要的概念。
通过合理处理异常,我们可以提高程序的可靠性和健壮性。
本文将介绍一些Java异常处理的练习题,帮助读者更好地理解和掌握异常处理的知识。
1. 编写一个程序,从命令行获取一个整数,并将其平方输出。
如果输入的不是整数,则抛出一个自定义的异常"InvalidInputException",并提示用户重新输入。
```javaimport java.util.Scanner;class InvalidInputException extends Exception {public InvalidInputException(String message) {super(message);}}public class SquareNumber {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);try {System.out.print("请输入一个整数: ");int num = scanner.nextInt();System.out.println("平方结果: " + num * num);} catch (Exception e) {scanner.nextLine(); // 清除输入缓冲区System.out.println("输入无效,请重新输入。
");main(args); // 递归调用自身,重新执行程序}}}```2. 编写一个方法,接收一个整数数组和一个整数n作为参数,返回数组中第n 个元素的值。
如果n超出数组的索引范围,则抛出一个自定义的异常"ArrayIndexOutOfBoundException",并提示用户重新输入。
java异常处理试题及答案

j a v a异常处理试题及答案This model paper was revised by the Standardization Office on December 10, 2020异常处理练习题一、选择题中用来抛出异常的关键字是 (C)A、tryB、catchC、throwD、finally2.关于异常,下列说法正确的是(A)A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都丌对3.(A)类是所有异常类的父类。
A、ThrowableB、ErrorC、ExceptionD、AWTError 语言中,下列哪一子句是异常处理的出口(C)A、try{…}子句B、catch{…}子句C、finally{…}子句D、以上说法都丌对5.下列程序的执行,说法错误的是 (C)public class MultiCatch{public static void main(String args[]){try{int a=;int b=42/a;int c[]={1};c[42]=99;}catch(ArithmeticException e){除0异常:”+e);}catch(ArrayIndexOutOfBoundsException e) {数组超越边界异常:”+e); }}}A、程序将输出第15行的异常信息B、程序第10行出错C、程序将输出“b=42”D、程序将输出第15和19行的异常信息6.下列程序的执行,说法正确的是(D)class ExMulti{static void procedure(){try{int c[]={1};c[42]=99;}catch(ArrayIndexOutOfBoundsException e) {数组超越界限异常:”+e);}}public static void main(String args[]) {try{procedure();int a=;int b=42/a;}catch(ArithmeticException e){除0异常:”+e);}}}A、程序只输出第12行的异常信息B、程序只输出第26行的异常信息C、程序将不输出异常信息D、程序将输出第12行和第26行的异常信息7.下面程序抛出了一个“异常”并捕捉它。
AnjoyoJava06章节考试题

第六章考试题一、选择题:(每题3分,共20题)1.关于异常的含义,下列描述中最正确的一项是()。
A、程序编译或运行时发生的异常事件B、程序语法错误C、程序自定义的异常事件D、程序编译错误2.自定义异常时,可以通过对下列哪一项进行继承(A )。
A、Exception类及其子类B、Applet类C、AssertionError类D、Error类3.对应try和catch子句的排列方式,下列说法正确的一项是(B )。
A、父类和子类不能同时出现在try语句块中B、子类异常在前,父类异常在后C、父类异常在前,子类异常在后D、只能有子类异常4.运行下面程序时,会产生的异常是( D )。
public class Test06_01 {public static void main(String[] args) {int x = 0;int y = 5/x;int[] z = {1,2,3,4};int p = z[4];}}A、ArrayIndexOutOfBoundsExceptionB、IOExceptionC、NumberFormatExceptionD、ArithmeticException5.运行下面程序时,会产生的异常是(D)。
public class Test06_02 {public static void main(String[] args) {int[] z = {1,2,3,4};int p = z[4];int x = 0;int y = 5/x;}}A、NumberFormatExceptionB、ArithmeticExceptionC、IOExceptionD、ArrayIndexOutOfBoundsException6.下列程序执行的结果是()。
public class Test06_03 {public static void main(String[] args) {try{return;}finally{System.out.println("Finally");}}}A、编译通过,但运行时出现异常B、因为没有catch子句,因此不能通过编译C、程序正常运行,并输出FinallyD、程序正常运行,但不输出任何结果7.下列代码中给出正确的在方法体内抛出异常的是()。
java异常处理试题及参考答案

异常处理练习题一、选择题1.java中用来抛出异常的关键字是(C)A、tryB、catchC、throwD、finally2.关于异常,下列说法正确的是(A)A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都丌对3.(A)类是所有异常类的父类。
A、4.javaA、try{C、5.{{“除0}A、程序将输出第15行的异常信息B、程序第10行出错C、程序将输出“b=42”D、程序将输出第15和19行的异常信息6.下列程序的执行,说法正确的是(D)class ExMulti{static void procedure(){try{int c[]={1};c[42]=99;}catch(ArrayIndexOutOfBoundsException e){“数组超越界限异常:”+e);}}public static void main(String args[]){“除0}ABCD7.{{}{try{procedure();}catch(IllegalAccessExcepton e) ___________{“捕获:”+e);}}8.对于catch子句的排列,下列哪种是正确的(B )A、父类在先,子类在后B、子类在先,父类在后C、有继承关系的异常不能在同一个try程序段内D、先有子类,其他如何排列都无关9.在异常处理中,如释放资源、关闭文件、关闭数据库等由(C )来完成。
A、try子句B、catch子句C、finally子句D、throw子句10.当方法遇到异常又不知如何处理时,下列哪种说法是正确的(C )A、捕获异常B、抛出异常C、声明异常D、嵌套异常11.哪个关键字可以抛出异常?(C)JVM. int i=0;String greetings[]= {“Hello world!”,“No,I mean it!”,“HELLO WORLD!!”};while(i<4){____try________{}____catch__(ArrayIndexOutOfBoundsException e){i=-1;}finally{}i++;}}三、判断题1. ( F )程序中抛出异常时(throw …),只能抛出自己定义的异常对象。
java异常处理测试题

4、捕获异常要求在程序的方法中预先声明,在调用方法时用try-catch-_____语句捕
获并处理。
5、java语言认为那些可预料和不可预料的出错称为_________
6、按异常处理不同可以分为运行异常、捕获异常、声明异常和______几种。
7、抛出异常的程序代码可以是______或者是JDK中的某个类,还可以是JVM.
throw_______IllegalAccessException(“demo”);
}
public static void main(String args[])
{
try
{
procedure();
}
________________________
{
System.out.println(“捕获:”+e);
10.当方法遇到异常又不知如何处理时,下列哪种说法是正确的( )
A、捕获异常B、抛出异常
C、声明异常D、嵌套异常
11.哪个关键字可以抛出异常?()
A、transient B、finally C、throw D、static
12.一个异常将终止( )
A、整个程序B、叧终止抛出异常的方法
C、产生异常的try块D、×上面的说法都丌对
}
}
8.对于catch子句的排列,下列哪种是正确的( )
A、父类在先,子类在后
B、子类在先,父类在后
C、有继承关系的异常不能在同一个try程序段内
D、先有子类,其他如何排列都无关
9.在异常处理中,如释放资源、关闭文件、关闭数据库等由( )来完成。
A、try子句B、catch子句
C、finally子句D、throw子句
java考试题库第六章

java考试题库第六章第六章异常和异常处理一选择题6-1.下列关于异常的描述中,错误的是(B)A.异常是一种经过修正后程序仍可执行的错误B.异常是一种程序在运行中出现的不可恢复执行的错误C.不仅Java语言有异常处理,C++语言也有异常处理D.出现异常不是简单结束程序,而是执行某种处理异常的代码,设法恢复程序的执行6-2.下列关于异常处理的描述中,错误的是(D)A.程序运行时异常由Java虚拟机自动进行处理B.使用try-catch-finally语句捕获异常C.使用throw语句抛出异常D.捕获到的异常只能用当前方法中处理,不能用其他方法中处理6-3.下列关于try-catch-finally语句的描述中,错误的是(A)A.try语句后面的程序段将给出处理异常的语句B.catch()方法跟在try语句后面,它可以是一个或多个C.catch()方法有一个参数,该参数是某种异常类的对象D.finally语句后面的程序段总是被执行的,该语句起到提供统一接口的作用6-4.下列关于抛出异常的描述中,错误的是(D)A.捕捉到发生的异常可在当前方法中处理,也可以抛到调用该方法的方法中处理B.在说明要抛出异常的方法时应加关键字throw<异常列表>C.<异常列表>中可以有多个用逗号分隔的异常D.抛出异常的方法中要使用下述抛出异常语句:throw<异常名>;其中,<异常名>是异常类的类名6-5.下列关于用户创建自己的异常描述中,错误的是(D)A.创建自己的异常应先创建一个异常类B.为实现抛出异常,须在可能抛出异常的方法中书写throw语句C.捕捉异常的方法是使用try-catch-finally语句格式D.使用异常处理不会使整个系统更加安全和稳定二判断题6-1.异常是一种特殊的运行错误的对象。
(对)6-2.异常处理可以使整个系统更加安全和稳定。
(对)6-3.异常处理是在编译时进行的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章异常处理机制
一、选择题
1.下列关于异常的说法正确的是(B)。
A.异常是编译时的错误
B.异常是运行时出现的错误
C.异常就是程序错误,程序错误就是异常
D.以上都不对
2.下列哪个类是异常类的父类(根类)(A)。
A.Exception
B.ArithmeticException
C.NullPointerException
D.ArrayIndexOutofBoundException
3.有关下列异常处理机制叙述正确的是(C)。
try{
可能产生异常的语句块;
}catch(exceptiontype1 e){
处理异常e的语句块;
}catch(exceptiontype2 e){
处理异常e的语句块;
}
……
finally{
最终处理语句块;
}
A.try子句可能有多个,catch子句可能有多个,finally子句必须有。
B.多个catch参数中的异常类可以有父子关系,但父类异常的catch子句应该在子类异常的catch子句前面。
C.如果try子句没有抛出任何异常,则跳过catch子句,转移到finally子句继续执行。
D.当try子句监视的语句块抛出异常时,运行时系统会根据catch子句的顺序,从第一个开始,逐个查找能够捕获该异常的catch子句并执行catch子句内的语句块以完成对异常的处理,然后继续执行后面的catch子句,最后转移到finally子句,执行该子句中的语句块。
4.有关throw和throws的说法中不正确的是(C)。
A.throw的作用是抛出异常,后面加的是异常类的对象。
B.throws的作用是向外抛出异常即声明要产生的若干异常,后面加的是异常类的类名。
C.throws只能声明要产生的自定义异常,也就是后面只能加自定义异常类。
D.以上都不对。
5.下列程序运行结果是(C)。
public class E {
public static void main(String argv[]){
E m = new E();
System.out.println(m.amethod());
}
public int amethod(){
int i, j=0;
try {
i=3/j;
j++;
} catch (ArithmeticException e) {
return j;
} catch (Exception e){
return 3;
}
return 2;
}
}
A.1 B.2 C.0 D.3
6.下列程序运行的结果是(A)。
public class E {
public static void main(String argv[]){
E m = new E();
System.out.println(m.amethod());
}
public int amethod(){
try {
int i, j=0;
i=3/j;
} catch (ArithmeticException e) {
System.out.println("0不能做除数");
return -1;
} catch(Exception e){
return -1;
} finally{
System.out.println("Doing finally");
}
return 0;
}
}
A.0不能做除数
Doing finally
-1
B.0不能做除数
-1
Doing finally
C.0不能做除数Doing finally
D.0不能做除数-1
二.编程题
1.编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法:
public void speak(int m) throws MyException,要求参数m的值大于200时,方法输出信息“参数的值大于200。
”,否则抛出一个MyException对象。
最后编写主类,在主类的main 方法中用Student创建一个对象s,该对象调用speak方法。
1.class MyException extends Exception {
MyException(){
super("This is MyException class");
}
}
class Student {
public void speak(int m) throws MyException {
if (m>200) {
System.out.println("参数的值大于200。
");
} else {
throw new MyException();
}
}
}
class E {
public static void main(String[] args) {
Student s = new Student();
try {
s.speak(100);
}catch(MyException e) {
e.printStackTrace();
}
}
}。