java异常处理作业
异常处理练习题
异常处理练习题一、选择题1.java中用来抛出异常的关键字是A、tryB、catchC、throwD、finally2.关于异常,下列说法正确的是A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都不对3.()类是所有异常类的父类。
A、ThrowableB、ErrorC、ExceptionD、AWTError4.java语言中,下列哪一子句是异常处理的出口A、try{…}子句B、catch{…}子句C、finally{…}子句D、以上说法都不对5.下列程序的执行,说法正确的是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.下列程序的执行,说法正确的是class ExMulti{static void procedure(){try{int c[]={1};c[42]=99;}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);}}}A、程序只输出第12行的异常信息B、程序只输出第26行的异常信息C、程序将不输出异常信息D、程序将输出第12行和第26行的异常信息7.下面程序抛出了一个“异常”并捕捉它。
翁凯 java 第七周 作业
翁凯的Java第七周作业第一部分:介绍翁凯1. 翁凯是一名资深的软件工程师,拥有丰富的开发经验和扎实的编程基础。
2. 他在互联网行业工作多年,曾在多家知名互联网企业担任重要技术职位。
3. 翁凯擅长Java编程,对Java技术有深入的理解和丰富的实战经验。
第二部分:Java第七周作业1. 作业内容:翁凯的Java第七周作业主要包括以下几个部分:面向对象编程、异常处理、多线程编程等。
2. 面向对象编程:翁凯在作业中通过设计类和对象的方式,实现了对现实世界问题的建模和求解。
他充分运用了面向对象的特性,如封装、继承和多态,使得代码结构清晰、逻辑严谨。
3. 异常处理:在作业中,翁凯充分考虑了程序可能出现的异常情况,并进行了相应的处理。
他使用try-catch-finally语句块,对可能出现的异常进行捕获和处理,保证了程序的稳定性和可靠性。
4. 多线程编程:翁凯在作业中还涉及了多线程编程的内容,他充分利用Java提供的多线程机制,实现了并发执行的效果,提高了程序的性能和响应速度。
第三部分:作业优点和亮点1. 作业的优点:翁凯的作业在代码逻辑上清晰,结构上合理,且符合面向对象编程的思想和规范。
他的异常处理能力较强,程序健壮性良好。
在多线程编程方面,翁凯能够合理运用多线程技术,提高程序的运行效率,体现了他在并发编程方面的能力。
2. 作业的亮点:翁凯在作业中展现了对Java编程语言的深刻理解和熟练应用,尤其是对面向对象编程和多线程编程方面的技术。
他的作业不仅能够完成基本的功能需求,还体现了一定的创新和扩展能力,展现了优秀的编程思维和能力。
第四部分:总结1. 翁凯的Java第七周作业展现了他优秀的编程能力和技术功底。
他在作业中展现了对面向对象编程、异常处理和多线程编程等方面的深入理解和熟练应用,展现了一名优秀软件工程师应有的专业素养和技术水平。
期待翁凯在以后的学习和工作中继续发挥自己的优势,取得更好的成绩和进步。
java三种异常处理方法
java三种异常处理方法Java是一种流行的编程语言,但是在编写程序时常常会遇到各种异常。
为了使程序更加健壮和稳定,我们需要使用异常处理机制。
Java中有三种异常处理方法:1. try-catch语句try-catch语句是最常用的异常处理方法。
它的基本语法如下: ```try {// 可能会抛出异常的代码} catch (Exception e) {// 异常处理代码}```在try块中,我们编写可能会抛出异常的代码。
如果这些代码抛出了异常,那么程序就会跳转到catch块中。
catch块中的代码会处理异常,可以输出异常信息,也可以进行其他操作。
2. throws关键字throws关键字可以将异常抛给调用该方法的上一级方法处理。
它的语法如下:```public void method() throws Exception {// 可能会抛出异常的代码}```在方法声明中使用throws关键字,表明该方法可能会抛出某种异常。
如果抛出了异常,异常将会被抛给该方法的调用者处理。
3. finally关键字finally关键字用于编写一段无论是否发生异常都会被执行的代码块。
它的语法如下:```try {// 可能会抛出异常的代码} catch (Exception e) {// 异常处理代码} finally {// 无论是否发生异常都会执行的代码}```在try-catch语句中使用finally块,可以确保无论是否发生异常,finally块中的代码都会被执行。
通常,finally块中会释放资源或者进行一些清理操作。
以上是Java中三种常见的异常处理方法。
在编写程序时,我们应该根据具体情况选择合适的方法处理异常,以保证程序的健壮性和稳定性。
java异常处理方法及流程
java异常处理方法及流程Java 异常处理方法及在 Java 编程中,异常处理是一项非常重要的技术。
通过适当的异常处理方法,可以使程序具备更好的稳定性和可读性,提高程序的健壮性。
本文将详细介绍 Java 异常处理的各个流程。
异常的基本概念异常是在程序执行期间产生的一种错误或异常情况。
Java 引入了异常处理机制来处理这些异常,以提高程序的可靠性和可维护性。
异常分为两种类型:1.受检异常(Checked Exceptions):受检异常在编译阶段必须进行处理,否则编译器将报错。
例如,IOException 是常见的受检异常。
2.非受检异常(Unchecked Exceptions):非受检异常是指不需要显式捕获或声明抛出的异常,编译器不会检查是否对其进行处理。
例如,NullPointerException 是常见的非受检异常。
异常处理的方法Java 提供了多种处理异常的方法,包括捕获异常和抛出异常。
下面分别进行介绍。
捕获异常是指通过使用try-catch语句块来捕获并处理异常。
try语句块用于包裹可能出现异常的代码,catch语句块用于捕获并处理异常。
try {// 可能抛出异常的代码块// ...} catch (ExceptionType1 e1) {// 处理异常类型1// ...} catch (ExceptionType2 e2) {// 处理异常类型2// ...} finally {// 可选的 finally 代码块,始终会被执行// ...}抛出异常当一个方法无法处理某个异常时,可以通过throw关键字手动抛出异常。
异常将会被传递给调用该方法的代码,并进一步处理。
public void someMethod() throws SomeException {if (someCondition) {throw new SomeException("Some error message");}使用异常的注意事项在使用异常处理时,需要注意以下几点:•捕获异常的顺序非常重要,应该从特定异常到一般异常的顺序进行捕获。
实验十一 Java中的异常处理
实验十一Java中的异常处理x=n.nextInt();if(x!=999)sum+=x;}catch(InputMismatchException e){}System.out.println(sum);}}}class TestXin{/*** @param args*/public static void main(String[] args) { // TODO Auto-generated method stubXin n=new Xin();System.out.println(n);}}结果:五、实验总结(对本实验结果进行分析, 实验心得体会及改进意见)5.分析程序的运行结果(1)class A{A(){System.out.println("A structure!");}A(int m){System.out.println("A("+m+")");}}public class B extends A{B(int m){System.out.println("B("+m+")");}public static void main(String[] args) { // TODO Auto-generated method stubnew B(100);}}(2)class A{A(){System.out.println("A structure!");}A(int m){System.out.println("A("+m+")");}}public class B extends A{B(){System.out.println("B structure!");}B(int m){System.out.println("B("+m+")");}public static void main(String[] args) { // TODO Auto-generated method stubnew B(100);}}(3)class A{A(){System.out.println("A structure!");}A(int m){System.out.println("A("+m+")");}}public class B extends A{B(){System.out.println("B structure!");}B(int m){//super(m);System.out.println("B("+m+")");}public static void main(String[] args) { new B(100);}}(4)class A{A(){System.out.println("A structure!");}A(int m){System.out.println("A("+m+")");}}public class B extends A{B(int m){super(m);//System.out.println("B("+m+")");}public static void main(String[] args) { new B(100);} }。
java中的异常处理机制的简单原理和应用
Java中的异常处理机制的简单原理和应用异常处理机制简介在Java中,异常处理机制是一种用于处理程序运行时出现错误和意外情况的机制。
异常是指在程序的执行过程中发生的错误或非正常情况,如无效的输入、文件不存在等。
使用异常处理机制,我们可以捕获并处理这些异常,从而保证程序的稳定性和可靠性。
异常处理机制主要包括以下几个方面的内容:1.异常类:Java提供了一系列异常类来表示不同类型的异常,比如NullPointerException、ArrayIndexOutOfBoundsException等。
每个异常类都是Throwable类的子类。
2.异常处理语句:使用try-catch语句块来捕获和处理异常。
try块中包含可能发生异常的代码,而catch块则用于捕获并处理异常。
3.异常处理方式:可以通过不同的方式来处理异常,比如忽略异常、打印异常信息、重新抛出异常等。
4.异常处理的层次结构:所有异常类都是Throwable类的子类,Throwable类又分为Error和Exception两个子类。
Error表示严重的错误,如虚拟机错误,一般不予处理;Exception则表示一般的异常情况,可以通过异常处理机制来处理。
异常处理机制的应用Java中的异常处理机制广泛应用于各种类型的程序中,下面是一些常见的应用场景:1. 文件操作在进行文件操作时,如打开文件、读取文件等,往往会遇到文件不存在、文件格式错误等异常情况。
通过使用异常处理机制,可以捕获并处理这些异常,提供友好的错误提示,避免程序崩溃。
```java try { FileReader fileReader = new FileReader(。
java异常处理实验结论
根据实验结果,可以得出以下结论:
1. 异常处理是一种有效的方式来处理程序中的错误和异常情况。
通过使用try-catch语句,可以捕获并处理异常,避免程序崩溃或产生不可预料的结果。
2. 在捕获异常时,应该根据具体的异常类型来选择合适的处理方式。
可以使用多个catch块来处理不同类型的异常,以便进行针对性的处理。
3. 在catch块中,可以采取不同的操作,如打印错误信息、记录日志、重新抛出异常等。
具体的操作应根据实际情况来决定。
4. 异常处理还可以使用finally块来执行一些必要的清理操作,无论是否发生异常都会执行。
finally块通常用于释放资源或关闭连接等操作。
5. 可以自定义异常类来表示程序中的特定异常情况。
自定义异常类应继承自Exception类或其子类,并实现自己的构造方法和其他必要的方法。
总之,异常处理是编写健壮和可靠的程序的重要组成部分。
通过合理
地处理异常,可以提高程序的稳定性和可维护性。
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 …),只能抛出自己定义的异常对象。
(完整word版)异常处理练习题
异常处理练习题一、选择题1.java中用来抛出异常的关键字是A、tryB、catchC、throwD、finally2.关于异常,下列说法正确的是A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都不对3.()类是所有异常类的父类。
A、ThrowableB、ErrorC、ExceptionD、AWTError4.java语言中,下列哪一子句是异常处理的出口A、try{…}子句B、catch{…}子句C、finally{…}子句D、以上说法都不对5.下列程序的执行,说法正确的是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.下列程序的执行,说法正确的是class ExMulti{static void procedure(){try{int c[]={1};c[42]=99;}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);}}}A、程序只输出第12行的异常信息B、程序只输出第26行的异常信息C、程序将不输出异常信息D、程序将输出第12行和第26行的异常信息7.下面程序抛出了一个“异常”并捕捉它。
java 异常 练习题
java 异常练习题Java 异常练习题Java 异常处理是每个 Java 程序员都需要掌握的重要技能之一。
异常是在程序运行过程中出现的错误或异常情况,如除零错误、空指针异常等。
在编写 Java 程序时,我们需要预测并处理可能出现的异常,以保证程序的稳定性和可靠性。
下面,我将给出一些 Java 异常练习题,帮助大家巩固和提升自己的异常处理能力。
1. 编写一个方法,接收一个整数参数,如果参数为负数,则抛出一个自定义的异常 NegativeNumberException,异常信息为"输入的数字不能为负数"。
在主方法中调用该方法,并捕获并处理异常。
2. 编写一个方法,接收两个整数参数,计算它们的商,并返回结果。
在方法中捕获并处理可能出现的除零异常,如果除数为零,则抛出一个自定义的异常DivideByZeroException,异常信息为"除数不能为零"。
在主方法中调用该方法,并捕获并处理异常。
3. 编写一个方法,接收一个字符串参数,将其转换为整数并返回。
在方法中捕获并处理可能出现的数字格式异常,如果无法转换为整数,则抛出一个自定义的异常 NumberFormatException,异常信息为"无法将字符串转换为整数"。
在主方法中调用该方法,并捕获并处理异常。
4. 编写一个方法,接收一个文件路径参数,读取文件内容并打印。
在方法中捕获并处理可能出现的文件不存在异常,如果文件不存在,则抛出一个自定义的异常 FileNotFoundException,异常信息为"文件不存在"。
在主方法中调用该方法,并捕获并处理异常。
5. 编写一个方法,接收一个整数数组参数,计算数组中所有元素的平均值并返回。
在方法中捕获并处理可能出现的数组下标越界异常,如果数组下标越界,则抛出一个自定义的异常 ArrayIndexOutOfBoundsException,异常信息为"数组下标越界"。
异常处理流程考试试题
一、选择题1.在Java中,使用哪个关键字来捕获异常?A.catch(正确答案)B.tryC.finallyD.throw2.当一个方法可能抛出多种类型的异常时,这些异常类型在方法声明中应该如何指定?A.使用逗号分隔(正确答案)B.使用分号分隔C.使用“或”符号分隔D.使用“与”符号分隔3.在异常处理中,finally块的主要目的是什么?A.捕获异常B.处理异常C.无论是否发生异常都执行代码(正确答案)D.声明可能抛出的异常4.在Java中,如果一个方法可能抛出检查型异常,那么在方法声明时应该使用哪个关键字来声明这些异常?A.catchB.throws(正确答案)C.tryD.finally5.当一个异常被抛出时,Java虚拟机(JVM)会按照什么顺序查找适当的异常处理器?A.从当前方法开始,沿着调用栈向上查找(正确答案)B.从main方法开始,沿着调用栈向下查找C.从当前方法开始,沿着调用栈向下查找D.从main方法开始,沿着调用栈向上查找6.在Java中,自定义异常类通常是从哪个类继承而来的?ng.Objectng.Throwableng.Exception(正确答案)ng.RuntimeException7.在异常处理中,使用哪个关键字可以重新抛出当前捕获的异常?A.catchB.throwsC.throw(正确答案)D.finally8.在Java中,如果一个方法内部抛出了一个未被捕获的检查型异常,那么这个方法应该如何声明?A.无需特别声明B.使用throws关键字声明可能抛出的异常(正确答案)C.使用try-catch块捕获异常D.使用finally块处理异常。
java异常处理试题及答案
异常处理练习题一、选择题1.java中用来抛出异常的关键字是(C)A、tryB、catchC、throwD、finally2.关于异常,下列说法正确的是(A)A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都丌对3.(A)类是所有异常类的父类。
A、ThrowableB、ErrorC、ExceptionD、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(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);}}}A、程序只输出第12行的异常信息B、程序只输出第26行的异常信息C、程序将不输出异常信息D、程序将输出第12行和第26行的异常信息7.下面程序抛出了一个“异常”并捕捉它。
JAVA_异常处理实验报告
JAVA_异常处理实验报告实验三异常处理[实验目的]1. 掌握异常处理方法及熟悉常见异常的捕获方法。
[实验内容]1. 练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。
[实验步骤]第1题异常处理要求声明定义两个Exception的异常子类:NoLowerLetter类和NoDigit类。
再声明一个People类~该类中的void printLetter(charc)方法抛出NoLowerLetter异常类对象~void PrintDigit(char c)方法抛出NoDigit异常类对象。
class NoLowerLetter extends Exception{String message;NoLowerLetter(char c){message=c+"不是正数";}public String getMessage(){return message;}}class NoDigit extends Exception{String message;NoDigit(char c){message=c+"不是偶数";}public String getMessage(){return message;}1}class People{public void printLetter(char c) throws NoLowerLetter{ if(c<0){NoLowerLetter ex=new NoLowerLetter(c);throw(ex);}double number=Math.sqrt(c);System.out.println(c+"的平方根:"+number);}public void PrintDigit(char c) throws NoDigit{if(c%2!=0){NoDigit ex=new NoDigit(c);throw(ex);}double number=Math.sqrt(c);System.out.println(c+"的平方根:"+number); }}public class bianma{public static void main(String args[]){ People p=new People();try{p.printLetter('Q');p.printLetter(' ');}catch( NoLowerLetter e){System.out.println(e.getMessage());}try{p.PrintDigit('d');p.PrintDigit('a');}catch( NoDigit e){System.out.println(e.getMessage());}}}将结果运行截屏贴在下面:23。
java异常处理实验报告
java异常处理实验报告Java异常处理实验报告实验目的:通过实验,掌握Java中异常处理的基本原理和方法,能够编写能够处理各种异常情况的程序。
实验环境:使用Java编程语言,Eclipse集成开发环境。
实验内容:1. 异常的基本概念异常是指在程序执行过程中出现的错误情况,包括编译时异常和运行时异常。
编译时异常是在编译阶段就会被检测出来的异常,如IOException、SQLException等;而运行时异常是在程序运行过程中才会出现的异常,如NullPointerException、ArrayIndexOutOfBoundsException等。
在Java中,异常是以类的形式存在的,所有的异常类都是Throwable类的子类。
2. 异常处理的方法在Java中,异常处理的方法主要有try-catch语句和throws关键字。
try-catch 语句用于捕获和处理异常,可以将可能发生异常的代码放在try块中,然后在catch块中处理异常;throws关键字用于声明方法可能抛出的异常,让调用该方法的代码处理异常。
3. 编写能够处理异常的程序通过实验,我们编写了一段能够处理异常的程序。
在程序中,我们使用了try-catch语句来捕获可能发生的异常,并且在catch块中输出异常信息,以便程序的调用者能够得到相应的反馈。
实验结果:经过实验,我们成功掌握了Java中异常处理的基本原理和方法,能够编写能够处理各种异常情况的程序。
实验总结:异常处理是Java编程中非常重要的一部分,能够有效地提高程序的健壮性和可靠性。
通过本次实验,我们深入理解了异常处理的原理和方法,为今后的Java编程打下了坚实的基础。
希望通过不断的实践和学习,能够更加熟练地运用异常处理的技巧,编写出高质量的Java程序。
异常处理作业
异常处理作业第九章异常处理一、选择题1、无论是否发生异常,都需要执行( C )A、try语句块B、catch语句块C、finally语句块D、return语句2、异常处理变量( C )。
A、应用public关键字B、可以应用protected关键字C、可以应用private关键字D、只能在异常处理方法内使用。
3、通常的异常类是(A )A、ExceptionB、exceptionC、CommonExceptionD、ExceptionShare4、异常产生的原因很多,常见的有(A )。
A、程序设计本身的错误B、程序运行环境改变C、软、硬件设置错误D、以上都是5、(C)是除0异常。
A、RuntimeExceptionB、ClassCastExceptionC、ArihmetticExceptionD、ArrayIndexOutOfBoundException6、下列描述中,对使用异常处理的原因描述错误的有( D )A、将错误处理程序与正常程序流分开,增加程序的可读性B、可以容易地指出异常在何处处理C、减轻程序员处理异常的任务D、增加语言的复杂机制7、读下面代码,哪个选项是正确的( C )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、没有输出结果8、当变异并且运行下面程序时会出现什么结果?( A )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、没有输出结果9、执行下面程序的结果是什么?其中a=4,b=0 ( B )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、没有输出结果10、假定一个方法会产生非RuntimeException异常,如果希望把异常交给调用该方法的方法处理,正确的声明方式是什么?( A )A、t hrow Exc eptionB、throws ExceptionC、new ExceptionD、不需要指明什么11、阅读下面的代码段、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 )A、”exception 1”后面跟着”finally”B、” exception 2”后面跟着“finally”C、”exception 1”D、”exception 2””12、下列哪些内容不是异常的含义?( B )A、程序的语法错B、程序编译或运行中所发生的异常事件C、程序预先定义好的异常事件D、程序编译错误13、自定义的异常类可从下列哪个类继承?( D )A、Error类B、AWTErrorC、VirtualMachineErrorD、Exception及其子集14、当方法遇到异常又不知如何处理时,下列哪种做法是正确的?( A )A、捕获异常B、抛出异常C、声明异常D、嵌套异常15、如要抛出异常,应用下列哪种子句?( B )A、catchB、throwC、tryD、finally16、对于catch子句的排列,下列哪种是正确的?( B )A、父类在先,子类在后B、子类在先,父类在后C、有继承关系的异常不能在同一个try程序段内D、先有子类,其他如何排列都无关17、下列选项中属于异常的关键字是( C )A、publicB、InputStream C 、ExceptionD、abstract18、下列选项中属于Exception异常的是(D )A、ArithmeticExceptionB、nullPointerExceptionC、classcastExceptionD、以上都是19、以下是异常的处理,哪个选项是正确的(D)A、book()throws exceptionB、book(int a)exceptionC、book()throwsD、book()throw exception20、所有属于( B )子类的异常都是非检查型异常A、RuntimeExceptionB、ExceptionC、ErrorD、以上答案都不对21、Java编译程序对于( A )需要加强捕获或声明要求A、异常B、错误C、非检查型错误D、检查型异常22、如果试图捕获多个错误,可在( A )语句块的后面使用多个()语句块A、try catchB、catch tryC、finally tryD、以上答案都不对23、将需要处理异常作为( B )语句块的一个参数来进行声明A、tryB、catchC、finallyD、以上都不对24、try语句块可以(C )A、拥有惟一的一个catch语句块B、多个finally语句块C、一个或多个catch语句块D、以上答案都不对25、所有RuntimeException子类的异常都属于( C )A、致命错误 B 、逻辑错误 C 、检查型错误D、非检查型错误26、( D )是所有Exception和Error类的共同超类A、ThrowableB、CheckedExceptionC、CatchableD、RuntimeException27、Error和Exception是Throwable的两个直接子类,其中下列属于Error的直接子类的是( D )A、ThreadDeathB、LinkageErrorC、VirtualMachineErrorD、以上都是28、在try代码中声明的变量只能在该块的大括号( B )使用A、结束之前B、结束之后C、不清楚D、不用执行29、假定一个方法可能会产生非RuntimeException异常,如果希望把异常交给调用该方法的方法处理,正确的声明方式是(D)A、throws ExceptionB、throw ExceptionC、new ExceptionD、不需要指明什么30、try代码块中包含的是可能引起一个或多个异常代码,能够抛出异常的代码必须位于( A )代码块中。
异常处理自测题
选择题1.对ClassNotFoundException描述正确的是?( C)A:试图访问null对象引用];B:请求的方法不存在;C:不能加载请求的类;D:异常的根类;2.在类的定义中可以有两个同名函数,这种现象称为函数(D)(A)封装(C)覆盖(B)继承(D)重载)。
3.给定java代码如下,运行时,会产生()类型的异常。
(B)String s=null;s.concat(“abc”);A)ArithmeticExceptionB)NullPointerExceptionC)IOExceptionD)EOFException4.在Java的异常处理中,用户自定义的异常类应该是()的子类。
(A)a) Exceptionb) Throwablec) Errord) RuntimeException5.对于 Java 的异常描述正确的是?( D )(A) 异常的结构中只能有一个catch块(B) 异常的机构体重必须有finally块(C) cathc代码段可以声明一种或多种其能处理的异常类型。
(D) finally代码段的内容无论是否发生异常都执行。
填空题6.当程序中需要抛出异常时,应该使用__throw______子句,当需要在方法中声明可能抛出的异常类型,应该使用__throws____子句。
程序题7.下列程序的运行结果。
public class TryCatchFinally{static void Proc( int sel ){try{if( sel==0 ){System.out.println("no Exception ");return;}else if( sel==1 ){int i=0;int j=10/i;}}catch( ArithmeticException e ) {System.out.println("ArithmeticException "); } catch( Exception e ) {System.out.println("Exception ");}finally{System.out.println("finally"); }}public static void main( String args[] ){Proc( 0 ); Proc( 1 );}}8.下列程序的运行结果class MyException extends Exception{public String toString( ){ return "negative number "; } }public class ExceptionDemo{public static void mySqrt(int a) throws MyException { if( a<0 )throw new MyException();System.out.println(Math.sqrt(a));}public static void main( String args[] ){try{mySqrt( 16 );mySqrt(-16);}catch( MyException e ){System.out.println("Caught "+e);}}}4.0Caught negative number简答题9.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?会,在return前执行10.error和exception有什么区别?Error不可恢复Exception 可恢复。
实验1.7-JAVA实战练习-Banking项目step7-异常处理 (2)
实验题目7:(在6基础上修改)将建立一个OverdraftException 异常,它由Account 类的withdraw()方法抛出。
实验目的:自定义异常实验说明:创建OverdraftException 类1.在banking.domain 包中建立一个共有类OverdraftException. 这个类扩展Exception 类。
2.添加一个double 类型的私有属性deficit.增加一个共有访问方法getDeficit3.添加一个有两个参数的共有构造器。
deficit 参数初始化deficit 属性修改Account 类4.重写withdraw 方法使它不返回值(即void).声明方法抛出overdraftException 异常5.修改代码抛出新异常,指明“资金不足”以及不足数额(当前余额扣除请求的数额)修改CheckingAccount 类6.重写withdraw 方法使它不返回值(即void).声明方法抛出overdraftException 异常7.修改代码使其在需要时抛出异常。
两种情况要处理:第一是存在没有透支保护的赤字,对这个异常使用“no overdraft protection”信息。
第二是overdraftProtection 数额不足以弥补赤字:对这个异常可使用”Insufficient funds for overdraft protection” 信息编译并运行TestBanking 程序Customer [simms,Jane]has a checking balance of 200.0 with a 500.0 overdraft protectionChecking Acct[Jane Simms]: withdraw 150.00Checking Acct[Jane Simms]: deposit 22.50Checking Acct[Jane Simms]: withdraw 147.62Checking Acct[Jane Simms]: withdraw 470.00Exception: Insufficient funds for overdraft protection Deifcit:470.0Customer [Simms,Jane]has a checking balance of 0.0Customer [Bryant,Owen]has a checking balance of 200.0Checking Acct[Bryant,Owen]: withdraw 100.00Checking Acct[Bryant,Owen]: deposit25.00Checking Acct[Bryant,Owen]: withdraw 175.00Exception: no overdraft protection Deficit:50.0Customer [Bryant,Owen]has a checking balance of 125.0。
Java异常处理之异常处理机制一:try-catch-finally
Java异常处理之异常处理机制⼀:try-catch-finally⼀、Java 异常处理 编写程序时,要在出现可能出现错误的时候加上检测的代码,如判断分母为0,数据为空,过多的 if-else分⽀导致程序代码加长,臃肿,可读性差,因此采⽤异常处理机制。
Java采⽤的异常处理机制,是将异常处理的程序代码集中在⼀起,与正常的程序代码分开,使得程序简洁、优雅,并易于维护。
⼆、异常处理:抓抛模型 1、抛出 Java 程序的执⾏过程中出现异常,会⽣成⼀个异常类对象,该异常对象将被提交给 Java 运⾏时系统,这个过程称为抛出(throw)异常。
⼀旦抛出对象以后,其后的代码就不再执⾏。
2、捕获、“抓” 可以理解为异常的处理⽅式:① try-catch-finally; ② throws; 3、异常对象的⽣成 (1)由虚拟机⾃动⽣成:程序运⾏过程中,虚拟机检测到程序发⽣了问题,如果在当前代码中没有找到相应的处理程序,就会在后台⾃动创建⼀个对应异常类的实例对象并抛出——⾃动抛出; (2)由开发⼈员⼿动创建:Exception exception = new ClassCastException;——创建好的异常对象不抛出对程序没有任何影响,和创建⼀个普通对象⼀样; 4、处理异常过程 (1)当程序运⾏到某⼀句时,发⽣了异常,那么程序会先停下来; (2)程序会在这句代码处,查看原因,⽣成⼀个合理“异常对象”,然后“抛”出; (3)JVM 会检测这句代码的外围,是否有 try...catch 结构,可以“捕获”它; (4)如果可以捕获,那么程序在处理完异常后,继续下⾯的运⾏,不会崩溃; (5)如果不能捕获,那么会把这个异常继续抛给“上级”,如果“上级”能处理,那么程序从“上级"处理完的代码后⾯继续运⾏; (6)如果上级也不能处理,那么继续往上抛,⼀直到达JVM,那么就“崩溃”; ①如果⼀个⽅法内抛出异常,该异常对象会被抛给调⽤者⽅法中处理。
java期末考试题及答案异常
java期末考试题及答案异常一、选择题(每题2分,共20分)1. 在Java中,以下哪个关键字用于声明异常?A. tryB. catchC. throwD. finally答案:C2. 如果一个方法声明抛出一个异常,那么这个方法的调用者必须如何处理这个异常?A. 必须捕获这个异常B. 必须声明抛出这个异常C. 可以忽略这个异常D. 以上都不是答案:B3. Java中,哪个类是所有异常类的父类?A. ObjectB. ThrowableC. ErrorD. Exception答案:B4. 下面哪个选项不是Java异常处理的关键词?A. tryB. catchC. throwD. loop答案:D5. 当一个方法中发生异常时,以下哪个块一定会被执行?A. try块B. catch块C. finally块D. 以上都不是答案:C6. 在Java中,如果一个异常没有被捕获,那么程序将会发生什么?A. 程序继续执行B. 程序会忽略这个异常C. 程序会终止D. 程序会重启答案:C7. 下面哪个选项是正确的异常处理语句?A. try { } catch { }B. try { } finally { }C. try { } catch { } finally { }D. try { } catch { } catch { }答案:C8. 在Java中,自定义异常通常是通过继承哪个类来实现的?A. ObjectB. ThrowableC. ErrorD. Exception答案:D9. 当一个方法声明抛出一个受检查的异常时,以下哪个说法是正确的?A. 调用者必须捕获这个异常B. 调用者必须声明抛出这个异常C. 调用者可以忽略这个异常D. 以上都不是答案:B10. 在Java中,以下哪个关键字用于在方法签名中声明异常?A. throwsB. throwC. tryD. catch答案:A二、填空题(每题2分,共20分)1. 在Java中,如果一个方法没有显式地声明抛出异常,那么它默认可以抛出________异常。
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)二、多项选择题按错误类型和差别分组捕获和处理不可预测的错误可以处理任何类型的错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java异常处理作业
孙月巧
1、参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。
【提示:用错误数据测试,即可得到异常类名,运行时主方法参数输入 abc 测试】
package November;
import java.util.Scanner;
public class StringIndexOutOf{
public static void main(String args[]){
System.out.println("请输入一个字符串:");
try{
Scanner reader=new Scanner(System.in);
String str = reader.nextLine();
System.out.println("第四个字符为 " + str.charAt(3));
int aa = Integer.parseInt(str);
System.out.println("平方为 " + aa * aa);
}
catch(StringIndexOutOfBoundsException e){
System.out.println("您输入的数值下标越界");
}
catch(NumberFormatException nfe){
System.out.println("您输入的不是数字");
}
}
}
2、从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。
package November;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
System.out.println("请输入五个整数:");
try {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c = Integer.parseInt(args[2]);
int d = Integer.parseInt(args[3]);
int e = Integer.parseInt(args[4]);
}
catch (NumberFormatException n) {
System.out.println("请输入整数");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("请输入至少5个整数");
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
3、写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
package November;
import java.util.Scanner;
public class Test3 {
void sanjiao()
{ int a;
int b;
int c;
System.out.println("请输入三条边长");
Scanner reader=new Scanner(System.in);
a=reader.nextInt();
b=reader.nextInt();
c=reader.nextInt();
if(a+b>c&&a+c>b&&b+c>a){
System.out.println("三角形的边长分别为"+"a="+a+" "+"b="+b+" "+"c="+" "+c);
}
else
{
System.out.println("不能构成三角形");
}
if(a<0||b<0||c<0){
System.out.println("三条边不能为负");
}
}
public static void main(String[] args){
Test3 t=new Test3();
try{
t.sanjiao();
}catch(NumberFormatException nfe){
System.out.println("请输入正整数");
}catch(IllegalArgumentException iae){
System.out.println("不能构成三角形!");
}catch(Exception e){
System.out.println("-----程序出错-----");
}
}
}
4、自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z 赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。
在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。
import java.util.InputMismatchException;
import java.util.Scanner;
class Test {
private double x;
private double y;
private double z;
public Test(double a, double b, double c)
{
this.x = a;
this.y = b;
this.z = c;
}
//面积
public double getArea()
{
return (1/4.0)*Math.sqrt(((x+y+z)*(x+y-z)*(x+z-y)*(y+z-x)));
}
//展示信息
public void showInfo()
{
System.out.println("边长分别为:"+x+","+y+","+z);
}
}
class NotSanjiaoException extends Exception
{
public NotSanjiaoException()
{
super("不能构成三角形!");
}
}
public class Test4
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
System.out.println("请输入三个边");
try
{
double x = s.nextDouble();
double y = s.nextDouble();
double z = s.nextDouble();
if(!(x+y>z && x+z>y && y+z>x))
{
throw new NotSanjiaoException();
}
Test sj = new Test(x,y,z);
System.out.println(sj.getArea());
sj.showInfo();
}
catch (NotSanjiaoException e)
{
System.out.println(e.getMessage());
}
catch(InputMismatchException e )
{
System.out.println("非法字符!");
}
}
}
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)。