java 异常处理题目

合集下载

Java异常面试题 33道

Java异常面试题 33道

Java异常架构与异常关键字1. Java异常简介Java异常是Java提供的一种识别及响应错误的一致性机制。

Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。

在有效使用异常的情况下,异常能清晰的回答what, where, why这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪”抛出,异常信息回答了“为什么”会抛出。

2. Java异常架构1. ThrowableThrowable 是 Java 语言中所有错误与异常的超类。

Throwable 包含两个子类:Error(错误)和 Exception(异常),它们通常用于指示发生了异常情况。

Throwable 包含了其线程创建时线程执行堆栈的快照,它提供了 printStackTrace() 等接口用于获取堆栈跟踪数据等信息。

2. Error(错误)定义:Error 类及其子类。

程序中无法处理的错误,表示运行应用程序中出现了严重的错误。

特点:此类错误一般表示代码运行时 JVM 出现问题。

通常有 Virtual MachineError(虚拟机运行错误)、NoClassDefFoundError(类定义错误)等。

比如 OutOfMemoryError:内存不足错误;StackOverflowError:栈溢出错误。

此类错误发生时,JVM 将终止线程。

这些错误是不受检异常,非代码性错误。

因此,当此类错误发生时,应用程序不应该去处理此类错误。

按照Java惯例,我们是不应该实现任何新的Error子类的!3. Exception(异常)程序本身可以捕获并且可以处理的异常。

Exception 这种异常又分为两类:运行时异常和编译时异常。

运行时异常定义:RuntimeException 类及其子类,表示 JVM 在运行期间可能出现的异常。

特点:Java 编译器不会检查它。

也就是说,当程序中可能出现这类异常时,倘若既"没有通过throws声明抛出它",也"没有用try-catch语句捕获它",还是会编译通过。

Java异常-集合1测试题1.0(试卷含答案)

Java异常-集合1测试题1.0(试卷含答案)

绝密★启用前 蓝桥软件学院《JavaSE 高级部分第二册第一周周考测试》笔试 注意事项: 1.答卷前,请关闭手机,禁止使用设备对试卷进行拍照。

2.请务必将个人相关信息填写在相应位置。

3.请将答案填写在相应位置,否则无效。

一、单选题 1. 阅读如下Java 代码,在控制台输入"-1",执行结果是(B )。

(选择一项) public class Demo { public static void main(String[] args) { Scanner input = new Scanner(System.in ); System.out .print("请输入数字:"); try { int num = input.nextInt(); if (num < 1 || num > 4) { throw new Exception("必须在1-4之间!"); } } catch (InputMismatchException e) { System.out .println("InputMismatchException"); } catch (Exception e) { System.out .println(e.getMessage()); } } } A 输出:InputMismatchException B. 输出:必须在1-4之间! C. 什么也没输出 D. 编译错误 2. 下面选项中属于运行时异常的是(BC )。

(选择二项) A Exception 和IOException B. NullPointerException 和InputMismatchException C. ArithmeticException 和ArrayInd exOutOfBoundsException D. ClassCastException 和ClassNotFoundException 3. 下面选项中有关Java 异常处理模型的说法错误的是(AD )。

实验十一 Java中的异常处理

实验十一  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教程(程序异常处理)(精)

程序异常处理引子O在调试航班体息录入程冲•时.町能会遇到这歼的情爲:应用程斤运行过程中.突然中止,屛棗上出现一丸堆英丈让人不知所培・o崔许多域市.很行ATM机随处可见,取歇非常方使•崔ATM机上取欲必须扶輒一定钓步裝携作.若挨作出会相应的災示传息.指导你下一步地楼作.比如密码输入错谖.ATM机将会显示诗码输入错谋・请重新输入”的消息•如是三次密碣伦入梆有谋.則呑卡没商量.o尢论什么斥因引起的程斤运行不正常.都认为是悝序出现了并常.知识要点。

异常的概念。

常见的异常情况。

异常处理的机制◎利用try catch finally实现异常处理o利用thro灵throws创建用户自定义异常知识学习一异常概念。

异常一血巾把程序运行中可能遇到的错罠分为两类.一类是非致命的.的过某种修正后程号还能键续执行.这类捲谖称为异常.边是一类特殊的运行错误対象. 另一类是致命的.即程序遇到了非常严重的不正常状态,不能简单地恢复轨行,这就是钳渓.叩异常类基类throwablcift生出两个子类:Error类:定义了Java程序运行时出现了灾难性失败的畀常.一股来说java程序不捕获也不拋出^Error的对象(包把动态磁接失败.虛拟机错逞等)•而只处理Except ion类的各子类对Exception类:定义了程序可以捕捉到的异常。

异営分两类:1)条统定义的2)用户定义的;・:・异常处理一对于异常,Java使用一种错误捕获方法进行) 处理,称为异常处理. 1斗处理异常的两种方式-是将异常交田Jam异常处理机制的预设处理方法来处理。

二是利用Java提供的try-cat ch-final ly语句对于㊁能出现的异常作预先处理。

"融辜习一程序运行的错误类型及位置识学习程序ArithmeticException 算术异常整数除法中,如果除数为0,则发生该类井常.Java虛拟机遇到这样的错i昊时会中止程序的执行流程,并新建~个ArithmeticException类的对象.即拋出一个算术运算异常.例如下面的程序将引发ArithmeticException异常:public class Test ArithmeticExceptionfpublic static void main(String args[])(int denominator=0,numerator=20jesult=0;resultanumerator/denominator;〃除数为0,将引发ArithmeticException异席System.out.prlntln(result);知识学习一程序运行的错误类型及位置NullPointerExcept ion异常发生的原因.通常是由于应用程序企图在某个需要的对鮫上使用mil I值。

java中级笔试题及答案2020

java中级笔试题及答案2020

java中级笔试题及答案20201. 题目一:Java 基础问题:请写出Java中实现多态的三种方式。

答案:在Java中实现多态主要有以下三种方式:1. 方法重载(Overloading):在同一个类中定义多个同名方法,但参数列表不同。

2. 方法重写(Overriding):子类覆盖父类的方法,子类方法与父类方法具有相同的方法名、返回类型和参数列表。

3. 接口实现:通过实现接口中的方法来实现多态。

2. 题目二:Java 集合框架问题:简述ArrayList和LinkedList的区别。

答案:ArrayList和LinkedList都是实现了List接口的集合类,它们的区别主要体现在:1. ArrayList是基于动态数组实现的,而LinkedList是基于双向链表实现的。

2. ArrayList在随机访问时速度更快,因为链表需要从头开始遍历。

3. LinkedList在添加和删除元素时速度更快,因为链表可以直接在任意位置添加或删除节点。

4. LinkedList比ArrayList更占内存,因为LinkedList需要存储额外的节点指针。

3. 题目三:Java 异常处理问题:请解释Java中的checked异常和unchecked异常的区别。

答案:Java中的异常分为checked异常和unchecked异常:1. Checked异常:编译器在编译时会检查的异常,必须在方法声明中使用throws关键字抛出或在方法体内使用try-catch语句捕获处理。

2. Unchecked异常:编译器不会检查的异常,包括RuntimeException及其子类。

它们在运行时才会被抛出,不需要在方法声明中使用throws关键字。

4. 题目四:Java 线程问题:描述Java中实现线程同步的两种方式。

答案:Java中实现线程同步主要有两种方式:1. 使用synchronized关键字:可以修饰方法或代码块,确保同一时间只有一个线程执行该段代码。

java异常练习题

java异常练习题

java异常练习题Java异常练习题在Java编程中,异常处理是非常重要的一部分。

通过合理地处理异常,我们可以提高程序的稳定性和可靠性。

为了加深对Java异常处理的理解,下面我将给大家提供一些常见的Java异常练习题。

1. 编写一个程序,要求用户输入两个整数,然后计算它们的商并输出。

如果用户输入的第二个数为0,则抛出一个自定义的异常"除数不能为0"。

```javaimport java.util.Scanner;public class DivideByZero {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入两个整数:");int num1 = scanner.nextInt();int num2 = scanner.nextInt();try {if (num2 == 0) {throw new DivideByZeroException("除数不能为0");}int result = num1 / num2;System.out.println("结果为:" + result);} catch (DivideByZeroException e) {System.out.println(e.getMessage());}}}class DivideByZeroException extends Exception {public DivideByZeroException(String message) {super(message);}}```2. 编写一个方法,接收一个字符串参数,然后将字符串转换为整数并返回。

如果字符串无法转换为整数,则抛出一个自定义的异常"无法转换为整数"。

Java中常见错误和异常解决方法(打印)

Java中常见错误和异常解决方法(打印)

ng.NullPointerException原因是:有空指针,有地址没赋值2.Exception in thread "main" ng.ArithmeticException: / by zero原因是除数是03.ArrayIndexOutOfBoundsException原因是:数组越界原因是:数字格式化有问题5.Unhandled exception type Exception原因是:没有进行异常处理6.进行国际化操作的时候遇到这样的错误:Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name Message, locale zh_CN答:因为在命令提示符中,是没有错误的解决方法是:在myeclipse中,会出现这个错误1.初步学习最近在学习ResourseBundle时遇到了“Can't find bundle for base name ”这个错误搞了很久才解决了。

原因就是类路径问题要将属性文件放在类路径中!百度里很多都是教程但没有涉及到解决方法! 2.中文显示:测试文件java 代码package com.lht.ResourseBundleStudy;import java.util.ResourceBundle;public class ResourseBundleDemo {public static void main(String[] args) {ResourceBundle resource =ResourceBundle.getBundle("test");System.out.print(resource.getString("msg0") + "!");System.out.println(resource.getString("msg1") + "!"); }}test.propertiesmsg0="Hello World"msg1="da jia hao"开始自己测试的时候:将属性文件放在bin/下也试过也不行无赖中就在google中搜索了一下终于在sun的java论坛()中找到了线索下面是帖子的内容:I've solved the problem the best way possible. Basically what i've done is added a new class folder named config to the project home dir. Then i added this classfolder to the classpath in project properties. After doing all of this you only need to reference the properties file by "Email".Hope this helps anyone else who is having similiar problems.基本意思就是在src下建立classes(名字无所谓)文件夹将属性文件存放在下面,然后将这个文件夹加入类路径中!运行就可以了:加入类路径的方法:你的工程文件夹->properties->选择Libraries选项卡->Add Class Folder将刚才建立的文件夹加入就可以了!结果如下:"Hello World"!"da jia hao";!2.中文显示在classes目录下建立message_CH.properties内容如下:ms0="大家好"同样用上面的测试文件!结果如下:"?ó????"!乱码怎么回事啊!在百度里搜索后找到了答案有以为网友写的很清楚:下面引用如下:原理Property文件中,使用的编码方式根据机器本身的设置可能是GBK或者UTF-8。

java异常处理试题及参考答案

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 …),只能抛出自己定义的异常对象。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

狂翔软件自定义异常章节题目
一.选择题:
1.关于异常的定义,下列描述中最正确的一个是()
a)程序编译错误
b)程序语法错误
c)程序自定义的异常事件
d)程序编译或运行中所发生的可预料或不可预料的异常事件,它会引起程序的中断,影响程
序的正常运行
2.抛出异常时,应该使用下列哪个子句
a)thow b)catch c)finally d)throws
3.自定义异常类时,可以通过对现列哪一项进行继承()
a)Error 类b)Applet类c)Exception类及其子集d)AssertionError类
4.当方法产生该方法无法确定该如何处理导演时,应该如何处理
a)声明异常B)捕获异常C)抛出异常D)嵌套异常
5.对于try和catch子句的排列方式,下列哪一项是正确的
a)子类异常在前,父类异常其后
b)父类异常在前,子类异常其后
c)只能有子类异常
d)父类异常和子类异常不能同时出现在同一个try程序段内
6.下列java语言的常用异常类中,属于检测异常的是()
a)ArithmeticException
b)FileNotFoundException
c)NullPointerException
d)IOException
7.下面描述中,错误的一项是()
a)一个程序抛出异常,任何其他在运行中的程序都可以捕获
b)算术溢出需要进行异常处理
c)在方法中监测到错误但不知道如何处理错误时,方法就声明一个异常
d)任何没有被程序捕获的异常将最终被默认处理程序处理
8.下列描述中,正确的一个是
a)内存耗尽不需要进行异常处理
b)除数为零需要进行异常处理
c)异常处理通常比传统的控制结构流效率更高
d)编译器要求必须设计实现优化的异常处理
9.下列错误不属于Error的是
a)动态链接失败b)虚拟机错误C)线程死锁D)被零除
10.下列描述中,错误的一个是()
a)异常抛出点后的代码在抛出异常后不再执行
b)任何没有被程序捕获的异常将最终被缺省处理程序处理
c)异常还可以产生于JA VA虚拟机内部的错误
d)一个TRY代码段后只能跟有一个CATCH代码段
11.下列描述中不属于java异常处理机制优点的一项是
a)把错误处理代码从正常代码中分离出来
b)按错误类型和差别分组
c)对无法预测的错误的捕获和处理
d)能够处理任何类型的错误
12.下列方法中哪一个不能用于获取异常信息()
a)toString() b) getMessage() c)drawline()d)printStackTrace()
13.下列描述中,哪一项不属于finally语句应该招待的功能()
a)释放资源b)关闭文件c)分配资源d)关闭数据库
14.下列关于抛出异常的描述中,错误的一项是()
a)任何从Throwable派生的类都可以用throw语句抛出
b)Exception 和Error是Throwable的直接派生类
c)异常抛出点后的代码在抛出异常后不再执行
d)Exception代表系统严重错误,一般程序不处理这类错误
15.一个catch语句段一定总和下列哪一项相联系
a)Try语句段b)finally语句段c)throw d)throws
二.选择题
1.在java语言中,为将源代码编译成字节码时产生的错误为编译错误。

而将程序在运行时产生的错误称为运行错误。

2.Java的异常类可以分为Exception 类和Error 类
3.Java语言声明Error 类为会产生“严重错误”的类
4.自定义的异常类必须为Exception 的子类
5.要继承自定义异常类的继承方式必须使用extends 关键字
6.Java发生异常状况的程序代码放在try 语句块中,将要处理异常状况的处理主式放于catch 语句块中,而finally 语句块则是必定会执行的语句块。

其中catch 语句埠可以有多个,以捕获各种不同类型的异常事件
7.任何没有被程序捕获的异常将最终被JA V A虚拟机标准异常处理程序处理
8.当在一个方法的代码中抛出一个检测异常时,该异常或被方法中的TRY—CATCH结构捕获,或者在方法的THROWS 中声明
9.异常处理机制可以允许根据具体的情况选择在何处处理异常,可以在方法内部捕获并处理,也可以用throws子句把它交给调用栈中上层的方法去处理
10.FileInputStream.read()方法可能产生IOException 异常
11.一个try代码段后面必须跟着若干个catch 代码段或者一个finally 代码段
12.Java异常机制把异常事件当成对象来处理,利用类的层次性可以把多个具有相同父类的异常统一处理,也可以区分不同的异常分别处理,使用非常灵活。

13.为了达到高效运行的要求,运行时出现的异常,可以直接交给Java虚拟机系统来处理,而且Exception 类派生出的非运行异常,要求编写程序捕获或者声明。

14.现在1个try代码段,其后紧跟了2个catch代码和1个finally代码段,若try代码段中没有异常产生,那么当try代码段结束执行时,程序将进入finally 代码段。

15.当异常已经被定义时,必须通过try cathc finally 语句来处理它。

16.Try子句中包含可能产生异常的程序段
17.Catch 子句包含捕获异常的程序段
18.Finally子句中包含统一事后处理的程序段
19.Throw的作用是抛出异常
20.Throws的作用是声明方法可能抛出的异常类型
21.语句catch 可以捕获Exception 和Error
22.Java 语言中常异常类IOException是用来处理输入输出异常的类
23.Java语言中常用异常类ClassNotFoundException是用来处理引用没有定义的类的异常的类24.可以通过catch(Exception e) 语句来捕获所有的异常。

25.如果一个使用了声明异常则编译器会强制在使用这个方法时处理这些异常。

26.Java语言中常用异常类EoFException是用来处理文件结束异常的类
27.当一个异常被抛出之后,需要有专门的语句来接收被抛出的异常,这个接收过程被称为捕获异常28.捕获异常时,可以把catch捕获的异常对象向外抛出,使上层try-catch结构继续处理该异常事件;
也可以把异常对象转换为其它异常对象。

29.为了啬程序的健壮性,在进行程序设计时,必须考虑到可能发生的异常情况并做出相应的处理。

30.传统的错误处理方法可以通过被调用函数的返回值感知在被调用函数中产生的错误。

三.问答题:
1.请简述try…catch..[finally] 三个语句块的主要功能
2.请列举至少三种在java语言中发生“严重错误”的情况
3.Finally语句块与catch语句块是否可以同时都没有?
4.自已编写一个自定义异常类,来处理一个异常
5.简要说明ClassNotFoundException IOException类的意义。

相关文档
最新文档