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.异常处理是在编译时进行的。
java异常处理题目
java异常处理题目异常处理是Java程序中的重要概念。
在程序运行过程中,可能会出现各种不可预知的异常情况,如文件不存在、数组越界、空指针等。
为了保证程序的稳定性和可靠性,我们需要编写异常处理机制来处理这些异常情况。
以下是一些关于Java异常处理的题目,让我们来逐个解答。
题目一:编写一个方法,接收一个整数数组作为参数,计算数组中所有元素的平均值,并返回结果。
如果数组为空,则抛出一个自定义的异常EmptyArrayException。
解答一:```javaclass EmptyArrayException extends Exception {public EmptyArrayException(String message) {super(message);}}public class AverageCalculator {public static double calculateAverage(int[] array) throws EmptyArrayException { if (array.length == 0) {throw new EmptyArrayException("数组为空");}int sum = 0;for (int num : array) {sum += num;}int average = sum / array.length;return average;}}```题目二:编写一个方法,接收一个文件名作为参数,读取文件内容并返回字符串。
如果文件不存在,则抛出一个FileNotFoundException异常。
解答二:```javaimport java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class FileContentReader {public static String readFileContent(String fileName) throws FileNotFoundException, IOException {BufferedReader reader = null;StringBuilder content = new StringBuilder();try {reader = new BufferedReader(new FileReader(fileName));String line;while ((line = reader.readLine()) != null) {content.append(line).append("\n");}} finally {if (reader != null) {reader.close();}}return content.toString();}}```题目三:编写一个方法,接收两个整数作为参数并返回它们的商。
java异常处理试题及答案
异常处理练习题一、选择题1. java 中用来抛出异常的关键字是 (C)A 、 try B、 catch C、throw D、 finally2. 关于异常,下列说法正确的是(A)A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都丌对3. ( A)类是所有异常类的父类。
A 、 ThrowableB 、 Error C、 Exception D 、 AWTError4. 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);}}}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(ArraylndexOutOfBoundsException e){System.out.println("数组超越界限异常:” +e);}}public static void main(String args[]){try{procedure();int a=args .len gth;int b=42/a;System.out.println( “ b= ” +b);}catch(ArithmeticException e){System.out.println("除 0 异常:” +e);}}}A、程序只输出第12行的异常信息B、程序只输出第26行的异常信息C、程序将不输出异常信息D、程序将输出第12行和第26行的异常信息7.下面程序抛出了一个“异常”并捕捉它。
Java新教材第六章面试题
第6章异常处理 (159)6.1 异常概述 (159)●什么是异常?答案:在程序的开发过程中产生的一些错误。
6.2 Java中的异常 (160)6.2.1 Error/Exception层次关系 (160)●请简要介绍Error和Exception的层次关系。
答案:在Java中,异常对象分为两大类:Error和Exception。
Error类和Exception类都是Throwable类的子类。
Error类只有四个子类:AWTError、LinkageError、VirtualMachineError以及ThreadDeat。
正如前面所述,它处理的是Java运行系统中的内部错误以及资源耗尽等情况,这种情况是程序员所无法掌握的,我们只有通知用户并安全退出程序的运行。
而Exception的子类就很多了,可以大致将它的子类分为三类:有关I/O的IOException,有关运行时的异常RuntimeException以及其它的异常。
RuntimeExcepiton异常是由于程序编写过程中的不周全的代码引起的,而IOException是由于IO系统出现阻塞等原因引起的。
●error和exception有什么区别?答案:error 表示恢复不是不可能但很困难的情况下的一种严重问题。
比如说内存溢出。
不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题。
也就是说,它表示如果程序运行正常,从不会发生的情况。
6.2.2 异常示例 (160)6.3 处理Exception (163)6.3.1 常见异常 (163)●引起RuntimeException异常的原因有很多,请举两个例子。
答案:●RuntimeException常见的异常有哪些?答案:·VI ·● 引起IOException 异常的原因有很多,请举两个例子。
答案:● IOException 常见的异常有哪些?答案:● 运行时异常与一般异常有何异同?答案:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
JAVA语言程序设计基础课后习题第六章
JAVA语⾔程序设计基础课后习题第六章//exercise 6.1package second;import java.util.Scanner;public class first {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);System.out.print("Enter the number of students:");int number=in.nextInt();System.out.print("Enter "+number+" scores:");int []score=new int[number];getscores(score);int best=max(score);for(int i=0;i<number;i++){System.out.println("Student "+i+" score is "+score[i]+" and grade is "+grade(score[i],best));}}public static void getscores(int []score){Scanner in=new Scanner(System.in);for(int i=0;i<score.length;i++){score[i]=in.nextInt();}}public static int max(int[] score){int max=score[0];for(int i=0;i<score.length;i++){if(max<score[i])max=score[i];}return max;}public static char grade(int score,int max){if(score>=max-10)return 'A';else if(score>=max-20)return 'B';else if(score>=max-30)return 'C';else if(score>=max-40)return 'D';elsereturn 'F';}}//exercise 6.2package second;import java.util.Scanner;public class second {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint []number=get();reverseprint(number);}public static int[] get(){Scanner in=new Scanner(System.in);int[] number=new int[10];System.out.println("input 10 number:");for(int i=0;i<number.length;i++){number[i]=in.nextInt();}return number;}public static void reverseprint(int[]Array){for(int i=Array.length-1;i>=0;i--){System.out.print(Array[i]+" ");}}}//exercise 6.3package second;import java.util.Scanner;public class third {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);int[] newarray=new int[100];int temp;for(int i=0;i<newarray.length;i++){newarray[i]=0;}System.out.print("Enter the integers between 1 and 100:");while((temp=in.nextInt())!=0){newarray[temp]++;}resultprint(newarray);}public static void resultprint(int []array){for(int i=0;i<array.length;i++){if(array[i]==1)System.out.println(i+" occurs "+array[i]+" time");if(array[i]!=0&&array[i]!=1)System.out.println(i+" occurs "+array[i]+" times");}}}//exercise 6-4package first;import java.util.Scanner;public class first {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubScanner in=new Scanner(System.in);int []score=new int[100];int i=0,sum=0,count=0;System.out.print("input integer:");while((score[i]=in.nextInt())!=-1){sum+=score[i++];count++;}int average=sum/count;int big=0,small=0;for(int j=0;j<count;j++){if(score[j]<average)small++;elsebig++;}System.out.println("average is "+average);System.out.println("better than average is "+big);System.out.println("small than average is "+small);}}//exercise 6-5package first;import java.util.Scanner;public class second {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub Scanner in=new Scanner(System.in); System.out.print("Enter ten numbers:");int []integer=new int[10];int count=0;for(int i=0;i<10;i++){boolean judge=false;int temp=in.nextInt();for(int j=0;j<count;j++){if(temp==integer[j]){judge=true;}}if(!judge){integer[count++]=temp;}}System.out.print("input integer:");for(int i=0;i<count;i++){System.out.print(integer[i]+" ");}}}//exercise 6-7package first;public class third {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint []counts=new int[10];for(int i=0;i<100;i++){int random=(int)(Math.random()*10); counts[random]++;}for(int i=0;i<10;i++){System.out.print(i+" ");}System.out.println();for(int i=0;i<10;i++){System.out.print(counts[i]+" ");}}}//exercise 6-8package first;public class fourth {/*** @param args*/public static int average(int[]array){int sum=0,count=0;for(int i=0;i<array.length;i++){sum+=array[i];count++;}return sum/count;}public static double average(double []array){double sum=0;int count=0;for(int i=0;i<array.length;i++){sum+=array[i];count++;}return sum/count;}}//exercise 6-9package first;public class fifth {/*** @param args*/public static double min(double []array){double min=array[0];for(int i=0;i<array.length;i++){if(min>array[i])min=array[i];}return min;}}//exercise 6-10package first;public class seventh {/*** @param args*/public static int indexOfSmallestElement(double[] array){ double min=array[0];for(int i=0;i<array.length;i++){if(min>array[i])min=array[i];}for(int i=0;i<array.length;i++){if(min==array[i])return i;}return 0;}}。
java题库整理
第六章异常处理 (2)一、选择题 (2)二、填空题 (6)三、判断题 (8)第七章输入/输出 (8)一、选择题 (8)二、填空题 (15)三、判断题 (18)四、读程序题 (20)五、编程题 (26)第八章基于Swing 的图形化用户界面 (28)一、选择题 (28)二、填空题 (37)三、判断题 (39)四、程序填空 (40)第十章多线程 (55)一、填空题 (55)三、判断题 (66)第十二章JDBC技术 (67)一、选择题 (67)二、填空题 (68)三、判断题 (69)四、程序填空 (69)第六章异常处理一、选择题1、无论是否发生异常,都需要执行()A、try语句块B、catch语句块C、finally语句块D、return语句答案:c2、异常处理变量()。
A、应用public关键字B、可以应用protected关键字C、可以应用private关键字D、只能在异常处理方法内使用。
答案:d3、通常的异常类是()A、ExceptionB、exceptionC、CommonExceptionD、ExceptionShare 答案:a4、异常产生的原因很多,常见的有()。
A、程序设计本身的错误B、程序运行环境改变C、软、硬件设置错误D、以上都是答案:a5、下列什么是除0异常()。
A、RuntimeExceptionB、ClassCastExceptionC、ArihmetticExceptionD、ArrayIndexOutOfBoundException答案:c6、读下面代码,哪个选项是正确的()import java.io.*;public class Test2{public static void main(String []args)throws IOException{i f(args[0]==”hello”)throw new IOException();}}A、没有错误,程序编译正确B、编译错误,不能够在main方法中抛出异常C、编译错误,IOException是一个系统异常,不能够由application程序产生D、没有输出结果答案:a7、当变异并且运行下面程序时会出现什么结果?()public class ThrowsDemo{static void throwMethod() {System.out.print("Inside throwMethod");throw new IOException("demo");}public static void main(String [] args){try{throwMethod();}catch(IOException e){System.out.println("Cauht"+e);}}}A、编译错误B、运行错误C、编译成功,但不会打印出任何结果D、没有输出结果答案:A8、执行下面程序的结果是什么?其中a=4,b=0 ()public static void divide(int a,int b){try{ int c = a / b; }catch(Exception e){System.out.println("Exception");}finally{System.out.println("Finally");}}A、打印Exception finallyB、打印FinallyC、打印ExceptionD、没有输出结果答案:A9、假定一个方法会产生非RuntimeException异常,如果希望把异常交给调用该方法的方法处理,正确的声明方式是什么?()A、throw ExceptionB、throws ExceptionC、new ExceptionD、不需要指明什么答案:B10、阅读下面的代码段、try{tryThis();return;}catch(IOException x1){System.out.println(“exception 1”);Return;}catch(Exception x2){System.out.println(“exception 1”);Return;}finally{System.out.println(“finally”)}如果tryThis()抛出一个IOException,那么屏幕的输出是什么?()A、”exception 1”后面跟着”finally”B、” exception 2”后面跟着“finally”C、”exception 1”D、”exception 2””答案:A11、下列哪些内容不是异常的含义?()A、程序的语法错B、程序编译或运行中所发生的异常事件C、程序预先定义好的异常事件D、程序编译错误答案:A12、自定义的异常类可从下列哪个类继承?()A、Error类B、AWTErrorC、VirtualMachineErrorD、Exception及其子集答案:D13、当方法遇到异常又不知如何处理时,下列哪种做法是正确的?()A、捕获异常B、抛出异常C、声明异常D、嵌套异常答案:B14、如要抛出异常,应用下列哪种子句?()A、catchB、throwC、tryD、finally答案:B15、下列选项中属于Exception异常的是()A、ArithmeticExceptionB、nullPointerExceptionC、classcastExceptionD、以上都是答案:A16、以下是异常的处理,哪个选项是正确的()A、book()throws exceptionB、book(int a)exceptionC、book()throwsD、book()throw exception答案:A17、将需要处理异常作为()语句块的一个参数来进行声明A、tryB、catchC、finallyD、以上都不对答案:B18、try语句块可以()A、拥有惟一的一个catch语句块B、多个finally语句块C、一个或多个catch语句块D、以上答案都不对答案:C19、下列什么是所有Exception和Error类的共同超类()A、ThrowableB、CheckedExceptionC、CatchableD、RuntimeException答案:A20、假定一个方法可能会产生非RuntimeException异常,如果希望把异常交给调用该方法的方法处理,正确的声明方式是()A、throws ExceptionB、throw ExceptionC、new ExceptionD、不需要指明什么答案:A21、try代码块中包含的是可能引起一个或多个异常代码,能够抛出异常的代码必须位于()代码块中。
异常处理_练习&面试题
output+="1";
}
catch(Exception e){
output+="2";
//return;
}
finally{
output+="3";
}
output+="4";
}
public static void main(String args[]){
foo(0);
System.out.println(output);//
foo(1);
System.out.println(output);//
}
}
【答案】
//134
System.out.println(i);
}
}
【答案】
进入方法A
用A方法的finally
制造异常
进入方法B
调用B方法的finally
1
--------------------------------------------------
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
catch(Exception e){
System.out.println("C");
}
System.out.println("D");
}
}
【答案】
//编译失败。 因为打印“A”的输出语句执行不到。
java异常处理练习题
一、填空题1、计算机程序错误分为(语法错误)、(运行错误)和逻辑错误。
2、(Error)类及子类表示受检查异常,(Exception)类及子类表示不受检查异常。
3、自定义异常,需要利用extends继承(Exception)类。
二、选择题1、下面(C)语言提供了异常处理机制。
A、C语言B、C++语言C、Java语言D、Basic语言2、下面(C)不是异常情况。
A、数组下标越界B、死循环C、文件不能打开D、对象类型不匹配3、如果不希望方法来捕捉异常,采用(AB)关键字可以把该方法产生的异常抛出。
A、throwB、throwsC、gotoD、 break三、简答题1、什么是异常,它的作用有哪些。
异常是指应用程序在运行过程中发生的不正常现象,或发生的错误。
异常是程序运行中一些红正常的错误,它中断正在执行程序的正常指令流。
2、受检查异常与运行时异常的区别。
受检异常是严重的系统错误产生的异常对象,应用程序通常无法捕获,如系统资源耗尽、动态链接失败和线程死锁等原因造成的程序中断。
错误处理一般交由操作系统处理,程序本身不提供错误处理机制。
通常从采取退出运行,应用程序不需要也无法对错误对象进行监视和处理。
运行时异常是不受检异常,可以不编写异常处理的程序代码,依然可以成功编译,因为它是在程序运行时才有可能产生。
这类异常可能出现在程序的任何部分,而且数量很大,为了不淹没程序,通常应用程序不需要对不受检异常对象进行监视,可以通过java编译器的检查。
四、编程题1、定义一个方法,该方法能够捕捉文件打开异常、数组下标越界异常,抛出除数为0异常。
import java.io.IOException;import java.util.Scanner;public abstract class Text {public static void main(String[] args) throws IOException {int a;int m=100;System.out.println("input a number:");Scanner scanner;scanner=new Scanner(System.in);try{a=scanner.nextInt();System.out.println("a:"+a);double b=m/a;System.out.println("b=100/a="+b);}catch(Exception e){System.out.println("/by zero");}System.out.println("success");// TODO自动生成的方法存根}}import java.io.IOException;import java.util.Scanner;public abstract class Text {public static void main(String[] args) throws IOException { int[] a={5,0,4,10,25,20};int m=100;for (int i=0;i<a.length;i++)try{System.out.println("a:"+a[i]);double b=m/a[i];System.out.println("b=100/a="+b);}catch(ArrayIndexOutOfBoundsException e){System.out.println("out of");}catch(Exception e){System.out.println("/by zero");}System.out.println("success");// TODO自动生成的方法存根}}。
第6章 习题答案
第6章习题
1. 关键字__throws__用来声明方法可能抛出的异常,关键字throw用来在方法中抛出异常。
2. 要捕获异常,使用的关键字__try__和__catch__。
3. 无论有无异常发生,始终要被执行的代码放在___finally___块中。
4. 简述Java程序中的三种错误?
答: 对于一个程序来说,可能会发生三种错误,语法错误、运行时错误和逻辑错误。
(1)语法错误的产生是在我们编写代码的过程中可能输入的字符错误,不符合相应的命令格式等;
(2)运行时错误是程序在运行中出现意料不到情况,如除数为零,数组越界等;
(3)逻辑错误是程序的运行结果和我们预想的结果不一致,这是一种难以调试的错误。
5. 简述使用try...catch处理异常的三种情况?
答:(1)第一种情况(try代码块不会产生异常) ,此时执行完try代码块,转而执行try…catch后的代码块;
(2)第二种情况(try代码块产生异常,并且与捕获的异常类型匹配),此时执行到产生异常代码时,转而执行相匹配的catch语句块,之后执行try…catch后的代码块;
(3)第三种情况(try代码块产生异常,并且与捕获的异常类型不匹配),当执行到产生异常的代码时,程序被中断。
java 异常处理题目
java 异常处理题目----42a38900-6ea4-11ec-b4a3-7cb59b590d7d java异常处理题目疯狂翔软件定制例外章节标题一.选择题:1.对于异常的定义,以下描述中最正确的一个是()a)b)c)d)程序编译错误程序语法错误程序自定义的异常事件在程序编译或运行过程中发生的可预测或不可预测的异常。
会导致程序中断,影响程序的正常运行2.抛出异常时,应该使用下列哪个子句a) a)a)b)c)d)a)b)c)d)a)b)c)d)a)b)c)d)a)a)b)c)d)a)b)c)d)a)b)c)d)athowb)接住c)finallyd)投掷3.自定义异常类时,可以通过对现列哪一项进行继承()错误类别B)小程序类别声明的异常b)捕获异常c)异常类及其子集d)断言错误类c)抛出异常d)嵌套异常4.当方法无法确定如何处理董事时,如何处理董事。
5.关于try-and-catch条款的安排,以下哪项是正确的子类异常在前,父类异常其后父类异常在前,子类异常其后只能有子类异常超类异常和子类异常不能同时出现在同一个try程序段中。
算术异常FileNotFoundException nullpointerexceptionioexception一个程序抛出异常,任何其他在运行中的程序都可以捕获算术溢出需要进行异常处理当在方法中检测到错误,但您不知道如何处理错误时,该方法会声明一个异常。
程序未捕获的任何异常最终都将由默认处理程序处理。
记忆耗尽。
不需要异常处理。
如果除数为零,则需要进行异常处理异常处理通常比传统的控制结构流效率更高编译器要求必须设计实现优化的异常处理动态链接失败b)虚拟机错误(c)线程死锁d)被零除6.在以下java语言的常见异常类中,属于异常检测的是()7.下面描述中,错误的一项是()8.以下描述中正确的一个是9.下列错误不属于error的是10.下列描述中,错误的一个是()抛出异常后,将不再执行异常抛出点之后的代码任何没有被程序捕获的异常将最终被缺省处理程序处理异常还可以产生于java虚拟机内部的错误一个try代码段后只能跟有一个catch代码段把错误处理代码从正常代码中分离出来11.在下面的描述中,不属于Java异常处理机制的优点之一是b)c)d)a)a)a)b)c)d)a)二、多项选择题按错误类型和差别分组捕获和处理不可预测的错误可以处理任何类型的错误。
JAVA期末复习题及答案——第六章
JAVA期末复习题及答案——第六章一.填空题1.Java中的异常类对象是Error类或Exception类的对象,这两个类中 Error 类的对象不会被Java的应用程序捕获和抛出。
2.在下列程序的下划线处,填入适当语句使程序能正确执行并输出异常栈信息public class ThrowableException{public static void main(String args[]){try{throw new Throwable(“这是本人定义的异常”);}catch(Throwable e){System.out.println(“e.toString:”+e.toString());System.out.println(“e.printStackTrace():”);System.out.println(e.printStackTrace()) ;}}}二.选择题1.下列关于finally的说法正确的是:BA、如果程序在前面的catch语句中找到了匹配的异常类型,将不执行finally 语句块B、无论程序是否找到匹配的异常类型,都会去执行finally语句块中的内容C、如果在前面的catch语句块中找到了多个匹配的异常类型,将不执行finally 语句块D、只要有catch语句块,任何时候都不会执行finally语句块2.关于多个catch语句块的异常捕获顺序的说法正确的是:DA、父类异常和子类异常同时捕获B、先捕获父类异常C、先捕获子类异常D、依照catch语句块的顺序进行捕获,只能捕获其中的一个3.关于Java 异常,下列说法错误的是(D)A.异常是定义了程序中遇到的非致命的错误,而不是编译时的语法错误B.try……catch语句中对try 内语句监测,如果发生异常,则把异常信息放入对象e 中C.throws 用来表示一个方法有可能抛出异常给上一层,则在调用该方法时必须捕捉异常,否则无法编译通过D.主函数不可以使用 throws 抛出异常4.所有异常的父类是(B)。
【VIP专享】java异常处理试题及答案
D、程序将输出第 15 和 19 行的异常信息
6.下列程序的执行,说法正确的是 (D) class ExMulti {
static void procedure() {
try { int c[]={1}; c[42]=99; } catch(ArrayIndexOutOfBoundsException e) {
异常处理练习题
一、选择题 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
catch(ArithmeticException e) { System.out.println(“除 0 异常:”+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); }
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); } } }
- 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();
}
}
}。