1.“程序中凡是可能出现异常的地方必须进行捕获或拋出”,这句话对吗?

异常分两类,runtime异常和非runtime异常。

  1. runtime异常,比如ArithmeticException等,这一类你不在程序里面进行try/catch,编译不会出错。如果一旦这样的异常出现程序就马上挂掉。对于这类异常,通常通过检查l逻辑来避免。
  2. 非runtime异常,比如常见的IOException等或自定义的exception,这一类在程序里不进行try/catch或throws,编译就会出错,C此时必须捕获或抛出。

2.自定义一个异常类,并在程序中主动产生这个异常类对象

public class SelfGenerateException extends Exception
{SelfGenerateException(String msg){super(msg);   //调用Exception的构造方法}static void throwOne() throws SelfGenerateException{int a = 1;if (a==1) //如果a为1就认为在特定应用下存在异常,改变执行路径,抛出异常{throw new SelfGenerateException("a为1");}        }public static void main(String args[]){try{throwOne();}catch(SelfGenerateException e){e.printStackTrace();}}
}

3.借助JDK帮助,请列举发生NullPointerException异常的一些情况

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:
调用 null 对象的实例方法。
访问或修改 null 对象的字段。
将 null 作为一个数组,获得其长度。
将 null 作为一个数组,访问或修改其时间片。
将 null 作为 Throwable 值抛出。

4.不执行程序,指出下面程序的输出结果;如果将黑体代码去掉,写出输出结果;如果再将斜体代码去掉,写出输出结果。

public class Test
{public static void aMethod() throws Exception{ try{ throw new Exception();}
//------------------黑体------------------------------------------------catch(Exception e){System.out.println("exception000");}
//----------------------------------------------------------------------
//--------------------斜体-----------------------------------------------finally{System.out.println("exception111");}
//---------------------------------------------------------------------------}public void main(String[] args){try{aMethod();}catch(Exception e){System.out.println("exception");}System.out.println("finished");     }
}

未去掉任何部分将输出结果:
exception000
exception111
finished

未去掉斜体将输出结果:
exception000
finished

未去掉黑体将输出结果:
exception111
exception
finished

本题关键是aMethod函数是否已经进行异常捕获(已经进行了try catch操作),进行了则在第二个catch中则不再进行,否则如果第一个未进行catch则第二个catch语句毕竟进行

5.不执行程序,指出下面程序的输出结果。

public class Test{public static String output ='';public static void foo(int i){try{if(i==1) {throw new Exception();}output += "1";}catch(Exception e){output += "2";return;}finally{output += "3";}output += "4";}public static void main(String args[]){foo(0);foo(1);System.out.println(Test.output);}
}

最终结果:13423
此问题的关键在于,如果出现异常则执行 try-catch-finally全套,例如output+=“4”则不会执行

6.编写一个程序方法,对空指针异常、除数为零异常给出出错的中文提示。当有新异常发生时,可扩展该方法中的代码进行统一处理。

public class Test{public static void main(String[] args) {try {String s = null;//System.out.println(1/0);//除零异常System.out.println(s.charAt(0));//空指针异常}catch (NullPointerException e) {System.out.println("空指针异常");}catch (ArithmeticException e) {System.out.println("计算异常");}catch (Exception e) {System.out.println("其他异常");e.printStackTrace();}}

CharAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1

7.从屏幕输入10个数,在输入错误的情况下,给出相应的提示,并继续输人。在输入完成的情况下,找到最大最小数。

import java.util.Scanner;public class Test {private static Scanner sc;public static void main(String[] args) {int index = 0;int[] array = new int[10];int max,min;while (true) {if (index == array.length) { break;}sc = new Scanner(System.in);System.out.print("输入" + (index + 1) + ":");try {array[index] = sc.nextInt();index++;} catch (Exception e) {System.out.println("输入错误,重新输入!");}}max = array[0];min = array[0];for (int i = 1; i < array.length; i++) {if (array[i] > max) {max = array[i];}if (array[i] < min) {min = array[i];}}System.out.println("max = " + max);System.out.println("min = " + min);}
}

8.阅读下面程序,TimedOutException为自定义异常,完成指定方法后面的部分。

public void method()throws TimedOutException{success= connect();if(success == -1){throw new TimedOutException();}}

《Java面向对象程序设计》(第2版)第七章课后习题及答案相关推荐

  1. java第二版课后题答案_Java语言程序设计第2版第16章 课后习题答案

    <Java语言程序设计第2版第16章 课后习题答案>由会员分享,可在线阅读,更多相关<Java语言程序设计第2版第16章 课后习题答案(62页珍藏版)>请在人人文库网上搜索. ...

  2. 数据库系统概念原书第六版黑皮书第一章课后习题作业答案

    文章目录 1.8列出文件处理系统和DBMS之间的四个显著区别. 1.9 解释物理数据独立性的概念,以及它在数据库系统中的重要性. 1.10 列出数据库管理系统的五个职责.对每个职责,说明当它不能被履行 ...

  3. 软件工程 张秋余等著 第七章课后习题部分答案

    第七章 面向对象方法学 什么是面向对象?有哪些基本概念?举例说明其基本特征. 正确答案: 第1问:面向对象(object-oriented,OO):是一种具体的软件开发技术与策略:也是一整套关于如何看 ...

  4. Java编程思想第4版 第13章 课后习题

    练习1:分析reusing/SprinklerSystem.java的SprinklerSystem.toString()方法,看看明确地使用StringBuilder是否确实能够避免产生过多的Str ...

  5. Java编程思想第4版 第12章 课后习题

    练习1:编写一个类,在其main()方法的try块里抛出一个Exception类的对象.传递一个字符串参数给Exception的构造器.在catch子句里捕获此异常对象,并且打印字符串参数.添加一个f ...

  6. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第七章课后习题参考答案

    第7章   软件维护  课后习题参考答案 简答题 (1)面向缺陷维护的内容是什么? 答:面向缺陷维护(程序级维护):软件产品能够正常运转,可以满足用户的功能.性能.接口需求,只是个别地方存在缺陷,使用 ...

  7. 鸟哥的Linux私房菜基础学习篇(第二版)第二章课后习题与答案

    习题: 1.计算机总是出现问题,有一个错误信息为"fatal:SASL per- connection security setup",请找出可能的原因. 答:先跑到 http:/ ...

  8. 郑莉版java第三章答案_java语言程序设计(郑莉)第七章课后习题答案.docx

    java语言程序设计(郑莉)第七章课后习题答案.docx 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: if (matrix.isTria ...

  9. java面向对象程序设计第三版_JAVA面向对象程序设计之创建型设计模式

    [本文详细介绍了JAVA面向对象程序设计中的创建型设计模式,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 什么是设计模式 设计模式( Design pattern )是一套被反复使用.多数 ...

最新文章

  1. 边框border属性总结
  2. swagger2注解说明文档
  3. MongoDB最简单的入门教程之四:使用Spring Boot操作MongoDB
  4. Android 的 生命周期_ 界面的切换 和 吐司
  5. 研讨会 | 知识图谱前沿技术课程暨学术研讨会(武汉大学站)
  6. SpringBoot入门二
  7. 网络设计分层设计的原理
  8. iOS开发之#iPhone6与iPhone6Plus适配#Xcode6.0/Xcode6.1上传应用过程中一些变动以及#解决方案#
  9. KaTeX parse error: No such environment: align
  10. srgan要训练多久_有氧运动要多久才开始消耗脂肪?
  11. Bettertouchtool for Mac(鼠标增强软件)
  12. Cocos2dx 链接Socket服务器
  13. java thread already started_自定义类加载器
  14. java 前端ui框架_5 个优秀前端 UI 框架
  15. 关于PC上的护眼大师这个软件
  16. excel随机数_【收藏】Excel生成随机数、不重复随机数技巧,试验检测办公必备...
  17. 飞地阿拉斯加的传奇故事
  18. python爬取豆瓣读书简单_Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
  19. 肿瘤免疫疗法 | 细胞治疗和PD1/PDL1 | Tumor immunotherapy | cell therapy
  20. 更改C盘用户目录下的用户名(真实有效)

热门文章

  1. 摩托车方向指示传感器MST1660
  2. 基于串口屏的电动车和摩托车仪表显示方案
  3. 每日科创板之627:柏楚电子航天宏图过会 德马科技等10家获受理
  4. 教你快速开发一个微信小游戏好友排行榜
  5. Thinkphp开发App网络授权验证系统源码
  6. 从 Java 到 Scala,再到 Kotlin
  7. 0606算法竞赛_数学思想
  8. [Pandas] 将某栏位中的值进行替换
  9. 安卓传感器之加速度、线性加速度、重力传感器
  10. vue移动端用什么数据可视化插件_vue-cli+v-charts实现移动端可视化图表