Java 异常(习题)

合集下载

Java异常(Exception)处理以及常见异常总结

Java异常(Exception)处理以及常见异常总结

Java异常(Exception)处理以及常见异常总结⽬录前⾔异常简介异常类型总结前⾔很多事件并⾮总是按照⼈们⾃⼰设计意愿顺利发展的,经常出现这样那样的异常情况。

例如:你计划周末郊游,计划从家⾥出发→到达⽬的→游泳→烧烤→回家。

但天有不测风云,当你准备烧烤时候突然天降⼤⾬,只能终⽌郊游提前回家。

“天降⼤⾬”是⼀种异常情况,你的计划应该考虑到这样的情况,并且应该有处理这种异常的预案。

计算机程序的编写也需要考虑处理这些异常情况。

异常(exception)是在运⾏程序时产⽣的⼀种异常情况,已经成为了衡量⼀门语⾔是否成熟的标准之⼀。

⽬前的主流编程语⾔java也提供了异常处理机制。

异常简介Java中的异常⼜称为例外,是⼀个在程序执⾏期间发⽣的事件,它中断正在执⾏程序的正常指令流。

为了能够及时有效地处理程序中的运⾏错误,必须使⽤异常类,这可以让程序具有极好的容错性且更加健壮。

在 Java 中⼀个异常的产⽣,主要有如下三种原因:1. Java 内部错误发⽣异常,Java 虚拟机产⽣的异常。

2. 编写的程序代码中的错误所产⽣的异常,例如空指针异常、数组越界异常等。

3. 通过 throw 语句⼿动⽣成的异常,⼀般⽤来告知该⽅法的调⽤者⼀些必要信息。

Java 通过⾯向对象的⽅法来处理异常。

在⼀个⽅法的运⾏过程中,如果发⽣了异常,则这个⽅法会产⽣代表该异常的⼀个对象,并把它交给运⾏时的系统,运⾏时系统寻找相应的代码来处理这⼀异常。

我们把⽣成异常对象,并把它提交给运⾏时系统的过程称为拋出(throw)异常。

运⾏时系统在⽅法的调⽤栈中查找,直到找到能够处理该类型异常的对象,这⼀个过程称为捕获(catch)异常。

例 1为了更好地理解什么是异常,下⾯来看⼀段⾮常简单的 Java 程序。

下⾯的⽰例代码实现了允许⽤户输⼊ 1~3 以内的整数,其他情况提⽰输⼊错误。

package io.renren.config;import java.util.Scanner;/*** Created by LiYangYong*/public class TestException {public static void main(String[] args) {System.out.println("请输⼊您的选择:(1~3 之间的整数)");Scanner input = new Scanner(System.in);int num = input.nextInt();switch (num) {case 1:System.out.println("one");break;case 2:System.out.println("two");break;case 3:System.out.println("three");break;default:System.out.println("error");break;}}}正常情况下,⽤户会按照系统的提⽰输⼊ 1~3 之间的数字。

Java日常练习题,每天进步一点点(11)

Java日常练习题,每天进步一点点(11)

Java⽇常练习题,每天进步⼀点点(11)⽬录1、对接⼝的描述正确的是()2、类中的数据域使⽤private修饰为私有变量,所以任何⽅法均不能访问它。

3、已知如下类定义:4、在java的⼀个异常处理中,可以包含多个的语句块是()。

5、关于Java语⾔中的final关键字的使⽤,下列说法正确的是()6、在 main() ⽅法中给出的整型数组,如果将其写到⼀个⽂件中,需要()。

7、下列有关Servlet的⽣命周期,说法不正确的是?8、What is displayed when the following is executed?9、假定Base b = new Derived(); 调⽤执⾏b.methodOne()后,输出结果是什么?10、下⾯关于变量及其范围的陈述哪些是不正确的()答案汇总:总结承蒙各位厚爱,我们⼀起每天进步⼀点点!(⿏标选中空⽩处查看答案)1、对接⼝的描述正确的是()正确答案: A⼀个类可以实现多个接⼝接⼝可以有⾮静态的成员变量在jdk8之前,接⼝可以实现⽅法实现接⼝的任何类,都需要实现接⼝的⽅法题解:A,⼀个类只能有⼀个直接⽗类,但是继承是有传递性的。

⼀个类可以实现多的接⼝。

⼀个接⼝可以继承多个类。

B,接⼝中没有普通变量(普通成员变量),接⼝中都是常量,默认修饰符:public static finalC,JDK8之前,接⼝中的⽅法都是默认public abstract的,JDK8之后,接⼝中可以有static、default的修饰的⽅法,⼀旦被修饰,⽅法必须有⽅法体(抽象⽅法可是没有⽅法体的),接⼝中的⽅法都不能被private和protected 修饰,同时外部接⼝、类只能被public修饰或者不写,但是内部接⼝、类可以被四个访问修饰符修饰。

D,实现接⼝,其实就是需要重写接⼝中的abstract⽅法,⼀旦实现的类没有重写完,那么这个类必须是个抽象类(抽象类中可以没有抽象⽅法,但是有抽象⽅法的类必须是抽象类)。

JAVA 习题题目及答案

JAVA 习题题目及答案

第2章
作业题
1. 参照例 2-1 编写一个 Java 应用程序,输出俄文字母表。 2. 参照例 2-4 编写一个 Java 应用程序,用户从键盘只能输入整数,程序输出这些整数的乘 积。
第 3 章问答题及作业题
第 3 章 问答题
1、下列 System.out.printf 输出的结果是什么? int a=100,x,y; x=++a; y=a--; System.out.printf(“%d,%d,%d”,x,y,a); 2、下列哪些语句有错误? int x=0; x=5.0/2; float y=12.5F; y=5.0/2;
第 5 章问答题及作业题
第 5 章 问答题
1、子类在什么情况下可以继承父类的友好成员? 2、子类通过怎样的办法可以隐藏继承的成员变量? 3、子类重写继承的方法的规则是什么? 4、子类的构造方法的第一条语句是什么? 5、子类对象一旦重写了继承的方法,就会隐藏继承的方法,是这样吗? 6、子类重写继承的方法时,可以降低方法的访问权限吗? 7、关键字 super 的用法? 8、假设父类有一个方法? public double f(double x, double y){ return x+y; }
第 4 章问答题及作业题
第 4 章 问答题
1、在声明类时,类名应遵守哪些习惯? 2、类体内容有哪两种重要的成员?
3、实例方法可以操作类变量吗?类方法可以操作实例变量吗? 4、当类的字节码加载到内存时,类变量就一定分配了内存空间吗? 5、类的实例变量在什么时候会被封分配内存空间? 6、一个类的类变量被该类创建的所有对象共享吗? 7、不同对象的实例变量分配的内存空间地址一定不同吗? 8、什么叫方法重载?构造方法可以重载吗? 9、请阐述,为什么类方法不可以调用实例方法。 10、请阐述,为什么类方法不能操作实例成员变量。 11、实例方法可以用类名直接调用吗? 12、 关键字 this 可以出现在构造方法中吗?可以出现在实例方法中吗?可以出现在类方 法中吗? 13、源文件中声明编写的类一定在同一个包中吗? 14、 “import java.awt.*;”和“import java.awt.Button”有什么不同? 15、程序中如果使用了“import java.util.*” ,程序运行时,要加载 java.util 包中全部的 类到内存中吗? 16、有几种访问权限修饰符?说出其中一种修饰符的作用? 17、怎样反编译一个类?

Java日常练习题,每天进步一点点(60)

Java日常练习题,每天进步一点点(60)

Java⽇常练习题,每天进步⼀点点(60)⽬录1、假设 A 类有如下定义,设 a 是 A 类同⼀个包下的⼀个实例,下列语句调⽤哪个是错误的?()2、Java中基本的编程单元为:3、下列代码的执⾏结果是:()4、给定以下JAVA代码,这段代码运⾏后输出的结果是()5、以下哪⼀项正则能正确的匹配⽹址: /video/av21061574 ()6、下列关于异常处理的描述中,错误的是()。

7、以下哪项不属于java类加载过程?8、对于⽂件的描述正确的是()9、有关hashMap跟hashtable的区别,说法正确的是?10、java中 String str = "hello world"下列语句错误的是?答案汇总:总结承蒙各位厚爱,我们⼀起每天进步⼀点点!(⿏标选中空⽩处查看答案)1、假设 A 类有如下定义,设 a 是 A 类同⼀个包下的⼀个实例,下列语句调⽤哪个是错误的?()class A{ int i; static String s; void method1() { } static void method2() { } }正确答案:CA System.out.println(a.i);B a.method1();C A.method1();D A.method2()题解:1、⾮静态⽅法只能通过实例对象来调⽤,不能直接通过类名调⽤。

静态⽅法(static)才能通过类名直接调⽤.2、类中变量:除了private权限外,其他权限的变量(没有表⽰默认default),均可以⽤“对象.变量名”来调⽤。

对于private变量,即使使⽤static,也不能⽤“类.变量名”来调⽤私有变量。

只能通过类中的public get()⽅法来调⽤。

类中⽅法:除了private权限外,其他权限的⽅法(没有表⽰默认default),均可以⽤“对象.⽅法名”来调⽤。

private ⽅法可以⽤java反射机制调⽤。

JAVA试题集锦(含答案)

JAVA试题集锦(含答案)

JAVA习题锦集(含答案)一、判断题1.(×)接口和类一样也可以有继承关系,而且都只能支持单继承2.(√)可以用FileOutputStream对象作为PrintWrite类的构造方法的参数3.(×)A subclass inherits all methods ( including the constructor ) from the superclass4.(×)Java中所有的类都是ng的子类5.(×)由于URL对象对应的Internet地址可以划分为“协议名”、“端口号”和“文件名”3部分,所以创建一个URL对象后,可以通过修改这3部分内容来修改这个URL对象的Internet地址6.(×)abstract方法不一定要声明在abstract类中7.(×)在Java中,异常(Exception)是指程序在编译和运行进出现的错误8.(√)我们可以方便地编写Java客户机/服务器程序,在客户机/服务器模式中,客户机一般通过套接字(Socket)使用服务器所提供的服务,Socket由两部分组成:IP地址和端口号9.(√)子类的域和方法的数目一定大于等于父类的域和方法的数目10.(×)最终方法只能存在于最终类中二、单选题1、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?B(A)安全性(B)多线性(C)跨平台(D)可移植2、下列选项中不是JAVA语言特点的是()D(A)面向对象(B)平台无关(C)安全性高(D)单线程3、异常包含下列那些内容?()D(A)程序中的语法错误(B)程序的编译错误(C)程序执行过程中遇到的事先没有预料到的情况(D)程序事先定义好的可能出现的意外情况4、JAVA语言中的语句是以()为结尾的。

B(A)句号(B)分号(C)双引号(D)逗号5、下列选项中,哪一个是打印语句的正确表达式:()A(A)System.out.println(); (B)System.out.Println();(C)System.Out.print(); (D)System.Out.println();6、下列哪一个是合法的JAVA语句标示符()C(A)#xyz (B)10Year (C)_Hello (D)@yahoo7、下列哪一个是JAVA语言的关键字()B(A)hello (B)void (C)num_01 (D)abc8、关于数据类型转换下面描述错误的是()D(A)当两个数据的类型不统一时,必须先进行数据类型的转换,再运算或赋值(B)byte类型数据可以转换为short,int,long类型数据(C)long类型数据有可能转换为byte,short,int类型数据(D)在语句int i=(int) 78.67;中,变量i的值为799、下列定义String变量s的语句中,错误的是()A(A)String s=new “Yes!”;(B)String s=new String(“yes!”) ;(C)String s; (D)String s=”Yes!”;10、下列关于注释语句的描述错误的是()DA、多行注释语句的内容,从/*开始,到*/结束B、多行注释语句也可以是单行语句C、文档注释语句的内容,从/**开始,到*/结束D、单行注释语句的内容,从//开始,以分号为结尾句11、定义一个长整型变量a的语句是()DA、int a ;B、a long ;C、float a ;D、long a;12、下列哪个是反斜杠字符的正确表示()AA、\\;B、*\\;C、\;D、\’\’;13.Main()方法的返回类型是()BA、intB、voidC、booleanD、static14. 编译运行以下程序后,关于输出结果的说明正确的是()Bpublic class Con{public static void main(String args[ ]){int x=2;System.out.println(“value is “+ ((x<1) ?22:2));}}A、输出结果为:value is 22.2B、输出结果为:value is 2C、输出结果为:value is 2.0D、编译错误15.给出下面代码:public class test{static int a[] = new a[10];public static void main(String args[]) {System.out.println(arr[10]);}}那个选项是正确的?()AA、编译时将产生错误;B、编译时正确,运行时将产生错误;C、输出零;D、输出空。

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异常练习题

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习题四
1 1 nothing
100 dots(.) 3 200 dots(.) 4 100 dashes(-) 5 100 dots(.) and 100 dashes(-) 12.如果一个线程调用了 wait()方法,下列哪些方法可以使这个线程继续运行?
2
join() 2 resume() 3 notify() 4 notifyAll() 5 high priority thread is ready 13.下列那个方法是用来定义具体的线程执行功能的?
1
start() 2 init() 3 run() 4 main() 5 synchronized() 14.下列哪些方法可以用来定义一个新的线程类?
1
implement the Runnable interface 2 add a run() method in the class 3 create an instance of Thread 4 extend the Thread class 15.一个方法在声明为同步方法时,只需要在方法名前面加上什么修饰符? 1 synchronized 2 abstract 3 final 4 static 5 public 16.下列哪种情况会p()方法 3 创建一个新的线程 4 有更高优先级的线程准备运行 5 调用输入流的 read()方法 17.给出程序 class Test{ public static void main(String[] args){ Thread t=new Thread(new RunHandler()); t.start(); } } 下列哪些说法可以使得上面程序得以运行? 1 RunHandler 类必须实现 ng.Runnable 接口 2 RunHandler 类必须继承 Thread 类 3 RunHandler 类必须提供一个 run()方法,并且该方法被声明为 public,返回值为 viod
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java异常(习题)
练习
1. 填空
Java 中所有的错误都继承自______类;在该类的子类中,
_______类表示严重的底层错误,对于这类错误一般处理的方式是___________;
_______类表示例外、异常。

2. 查api,填空
异常类java.rmi.AlreadyBoundException,从分类上说,该类属于__________(已检查| 未检查)异常,从处理方式上说,对这种异常___________________;
异常类java.util.regex.PatternSyntaxException,从分类上说,该类属于_________(已检查|未检查)异常,从处理方式上说,对这种异常__________________。

4. (try-catch-finally)有如下代码:
问:当读入的n 分别为1,2,3,4,5 时,输出的结果分别是什么?
5. (自定义异常)创建两个自定义异常类MyException1 和MyException2。

要求:
1) MyException1 为已检查异常,MyException2 为未检查异常
2) 这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,参数表示产生异常的详细信息。

问:
在//1 处,填入以下________代码可以编译通过,在//2 处,填入_________代码可以编译通过。

A. throws java.io.IOException
B. throws java.io.FileNotFoundException, java.io.EOFException
C. throws java.sql.SQLException
D. 不能抛出任何异常。

选择正确答案:
A.编译不通过
B.编译通过,输出No Exception C.编译通过,输出ex1
D.编译通过,输出ex2
E.编译通过,输出ex3
10. *(try-catch,局部变量)有如下代码
选择正确答案:
A. 编译不通过
B. 编译通过,输出-1
C. 编译通过,输出0
在ma 中,当读入的b 为100 时,输出结果为____,当读入的b 为0 时,输出结果为_____。

12. *(try-finally)写出下面代码运行的结果
在ma 中,读入整数b,如果读入的值为10,则输出:
如果读入的值为0,则输出:
以上代码是否能编译通过?如果不能,应该如何修改?
14. *(自定义异常)完成某个计费系统的用户登录和注册模块,要求如下:
1)创建一个User 类,包括:用户登录名(username)、密码(password)、用户真实姓
名(name)、电子邮件地址(email)属性和相应的构造方法及set/get 方法。

2)创建两个自定义异常类,一个LoginException,表示登录异常。

一个RegisterException,表示注册异常。

自定义的两个异常,都要求有一个接受字符串类型参数的构造方法。

3)创建一个UserBiz 接口,该接口中定义两个方法:
其中register 方法接受两个password 参数,原因是:在用户注册时,需要输入两遍password,只有两次输入的password 一致,才允许注册。

4)创建UserBiz 接口的实现类。

其中
为该实现类创建一个属性,该属性为一个Map,用来保存已注册的用户信息。

Map 的键为用户登录名,值为登录名对应的User 对象。

初始情况下,Map 中保存的对
象为以下两个:
用户名密码真实姓名电子邮件
//admin admin Administrator admin@
//tom cat tomcat tomcat@
register 方法在以下两种情况下抛出异常:
1)username 在Map 中已存在
2)两次输入的password 不一致
login 方法在以下两种情况下抛出异常:
1)username 不存在
2)username 和password 不匹配
5)创建一个UserView 接口,该接口中定义两个方法:
void login();
void register();
6)创建UserView 接口的实现类。

该实现类的login 方法中,利用命令行,让用户输入用户名和密码,之后调用UserBiz 中的login 方法。

部分代码如下:
void login(){
System.out.println(“请输入用户名:”);
String username = ;
System.out.println(“请输入密码”);
String password = ;
//调用UserBiz 中的login 方法
}
该类的register 方法采用类似的方法,让用户输入注册时需要的信息,然后调用UserBiz 中的register 方法。

注意:
1、密码应该让用户输入两遍。

2、UserViewImpl 中应当有一个UserBiz 类型的属性
7)编写测试代码。

类图如下:
15. **(异常的捕获和抛出)有以下代码:
import java.io.*;
import java.sql.*;
public class TestMyException {
public static void main(String args[]) {
try {
System.out.println("main1");
ma();
System.out.println("main2");
} catch (Exception e) {
System.out.println("Catch Exception in main");
System.out.println(e.getMessage());
}
}
public static void ma() throws IOException {
try {
System.out.println("ma1");
mb();
System.out.println("ma2");
} catch (SQLException e) {
System.out.println("Catch SQLException in ma");
throw new IOException(e.getMessage());
} catch (Exception e) {
System.out.println("Catch Exception in ma");
System.out.println(e.getMessage());
问:该程序输出结果是什么?
16. **(异常的捕获和抛出)有以下代码
选择正确答案:
A. 编译出错
B. 编译正常,输出main1 ma1 In Catch
C. 编译正常,运行时出错
17. **(异常的捕获和抛出)有如下代码
public static void ma() throws IOException { }
}
下面哪些代码放在处可以编译通过?
A. catch(NullPointerException npe){}
B. catch(IOException ioe){}
C. catch(SQLException sqle){}。

相关文档
最新文档