Java异常习题_第1页
Java异常习题_第2页
Java异常习题_第3页
Java异常习题_第4页
Java异常习题_第5页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、java异常(习题)Key Point*异常的概念和分类*异常的产生和传递*异常的处理*自泄义异常练习1. 填空Java中所有的错误都继承自类;在该类的子类中,类表示严重的底层错误,对于这类错误一般处理的方式是: 类表示例外、异常。2. 査api,填空异常类java.rmi.AlreadyBoundException,从分类上说,该类属于 (已检査|未检查)异常,从处理方式上说,对这种异常:异常类java.util.regex.PatternSyntaxException,从分类上说该类属于 (已检査|未检查)异常,从处理方式上说,对这种异常。3. (异常的产生)把下而代码补充完整packag

2、e exception;public class TestThrow public static void main(String args) throwException(lQ);public static void throwException(int n) if (n = 0) / iferH-INullPointerExcepticn else /IClassCastException/并设定详细信息为、类型转换出错)4. (try-catch-finally)有如下代码:import java.io.*;import java.sql.*;class TestException pu

3、blic static void main(String args) System.out.printlnCmai n 1);int n;/读入n ma(n);System.out.printl n(”mai n2”);public static void ma(int n) trySystem.out.printlnCmai);mb(n);Systemout.println(”ma2); catch (EOFException e) System.out.printlnnCatch EOFException11); catch (lOException e) System.out.print

4、ln(HCatch lOException); catch (SQLException e) System.out.println(HCatch SQLException1); catch (Exception e) System.out.println(”Catch Exception11); finally System.out.printlnHln fin ally);public static void mb(int n) throws Exception System.out.printlnCmbl); if (n = 1)throw new EOFException();if (n

5、 = 2)throw new FileNotFoundException();if (n = 3)throw new SQLException();if (n = 4)throw new NullPointerException();System.out-printlnCmb?);问:当读入的n分别为1, 2, 3, 4, 5时,输出的结果分别是什么?5. (自左义异常)创建两个自定义异常类MyExceptionl和MyException2。 要求:1) MyExceptionl为己检查异常,MyException2为未检查异常2) 这两个异常均具有两个构造函数,一个无参,另一个带字符串参数,

6、参数表示产生 异常的详细信息。6. (自定义异常)在上一题的基础上,把下面代码补充完整。public class TestMyException public static void main(String args) int n;/读入try m(n);)catch (MyExceptionl exl) /输出详细的方法调用栈信息 catch (MyExceptionZ e:2)/输出亡乂2的详细信息/并把“2重新抛出public static void m(int n) / jiteiliMyExceptionlif (n = 1) / MiliMyExceptionl/并设定其详细信息为

7、= 1 else / ifei:lMyExcepticn2/并设定其详细信息为= 27. (try-catch)代码改错。class MyException class TestException public static void main(String args) ma();public static int ma() ( try m();return 100;) catch (Exception e) System out .printIn (Exception1); catche) System out.printIn(HArithmeticExceptionH);public st

8、atic void m()(throw new MyENception();8(方法覆盖)有如下代码class Super public void ma() throws IOException interface ZA void mb();class MySub extends Super implements IA public void ma()/ 1public void mb()/ 2问:在1处,填入以下代码可以编译通过,在/处,填入代码可以编译通过。A. throws java.io JOExceptionB. throws java.io.FileNotFoundExceptio

9、n, java.io.EOFExceptionC. throws java.sql.SQLExceptionD. 不能抛出任何异常。9. * (异常处理)有如下代码import java.io.*;import java.sql.*;public class TestTryCatch public static void main(String args) tryma(10);System.out.println(HNo Exception”); catch (EOFException exl) System.out.printlnCexl1); catch (lOException ex2)

10、 System.out.println(,ex2,1); catch (SQLException ex3) System.out.println(,ex3,1);public static void ma(int n) throws Exception if (n = 1) throw new lOException(); else if (n = 2) throw new EOFExcep廿on(); else if (n = 3) throws new SQLException();选择正确答案:A. 编译不通过B. 编译通过,输出No ExceptionC. 编译通过,输岀exlD. 编

11、译通过,输出ex2E. 编译通过,输出ex310. * (try-catch,局部变量)有如下代码public class TestTryCatch public static void main(String args) System our printIn(ma();public static int ma() (int n;try n = 10 / 0;) catch (Exception e) return n;选择正确答案:A. 编译不通过B. 编译通过,输岀4C. 编译通过,输出011. * (try-catch-finally)有如下代码在ma中,当读入的b为100时,输岀结果为

12、,当读入的b为0时,输出结果为12. * (try-finally)写出下而代码运行的结果public class TestTryFinally public static void main(String args) try 心); catch (Exception exl) public static void ma() throws Exception int n = 10;int b;/读入一个整数btry System out.println(nmal);int result = n / b;System.outz.printin (ma2 H + result); finally

13、System out .printIn (In Finally*);在ma中,读入整数b,如果读入的值为10,则输出:如果读入的值为0,则输出:13. * (方法覆盖)class MySuper public void m() throws IOException class MySub extends MySuper public void m() throws EOFException class MySub2 extends MySub public void m() throws FIlENotFoundException 以上代码是否能编译通过?如果不能,应该如何修改?14. * (

14、自立义异常)完成某个计费系统的用户登录和注册模块,要求如下:1)创建一个User类,包括:用戸登录名(username)密码(password)、用户真实姓 名(name)、电子邮件地址(email)属性和相应的构造方法及set/get方法。2)创建两个自泄义异常类,一个LoginException,表示登录异常。一个RegisterException, 表示注册异常。自立义的两个异常,都要求有一个接受字符串类型参数的构造方法。3)创建一个UserBiz接口,该接口中住义两个方法:void register(Stri ng user name, String password, String

15、password2, String namez String email) throws RegisterException 用戸注册 void login(String username, String password) throws LoginException 用丿11 登录 其中register方法接受两个password参数,原因是:在用戸注册时,需要输入两遍 password,只有两次输入的password 一致,才允许注册。4) 创建UserBiz接口的实现类。其中为该实现类创建一个属性,该属性为一个Map,用来保存已注册的用户信息。Map 的键为用户登录名,值为登录名对应的U

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

17、login方法中,利用命令行,让用户输入用户需和密码,之后调用UserBiz 中的login方法。部分代码如下:void login()System.out.println(z/iu 输入用户名:);String user name =;System.out.println(z/ 请输入密码”);String password =;调用UserBiz中的login方法该类的register方法采用类似的方法,让用户输入注册时需要的信息,然后调用UserBiz 中的 register 方法。注意:1、密码应该让用户输入两颯。2、UserViewImpI中应当有一个UserBiz类型的属性7) 编

18、写测试代码。类图如下:UserintriadUsetBiziwwfrw String passer J 5i)rg -name Stnn;。聞莎 Srr-nj+ SgSa%”白力g 抄工g, QS55ZO闰 Spring) go+ 呦汨g畑 SWm. puir? St迪.阿*F? $7”o zz S和內,qmH 0nq) meUserBizmpIUserViewLoginExcptionRegisterExceptionJSOfM 幻 I 也)-foj?)wia reg s.o 咖UserVlewImpI15. * (异常的捕获和抛出)有以下代码:import javaio.w;import

19、java;public class TestMyException public static void main(String args) try System out .println (mainl1);ZM();System, out .println (main2M); catch (Exception e) System out printin (Catch Exception in main1);System out .prlntln (e getMessage ();)public static void ma() throws IOException ( try System out.println(nmal);mb();System out .printIn (nma2n); catch (SQLExceprion e) System.out.println(Catch SQLException in ma);throw new IOException(e今亡(); catch (Exception e) System.out.println(Catch Exception m ma);System out.println(e getMessage();public static void mb() throws SQLException throw new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论