第八周动手动脑

muailiulan muailiulan     2023-01-17     533

关键词:

动手动脑一:

请阅读并运行AboutException.java示例

技术分享图片AboutException.java

 答:

技术分享图片

结论:

异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况。许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象。

例如:数组越界和被0除

技术分享图片

 动手动脑二:多层的异常捕获-1

阅读以下代码(CatchWho.java),写出程序运行结果:

 

技术分享图片 CatchWho

 

答:运行结果:

ArrayIndexOutOfBoundsException/内层try-catch

发生ArithmeticException

 

动手动脑二:多层的异常捕获-2

 

 阅读以下代码(CatchWho.java),写出程序运行结果:

技术分享图片 CatchWho2

答:运行结果:

ArrayIndexOutOfBoundsException/外层try-catch

动手动脑三:

请先阅读 EmbedFinally.java示例,再运行它,观察其输出并进行总结。

 

技术分享图片 EmbededFinally

 

答:运行结果:

异常清除之前:

Exception in thread "main" java.lang.Error: 无法解析的编译问题:

标记“.”上有语法错误,删除此标记

at ceshi.CatchWho2.main(CatchWho2.java:70)

异常清除之后:

in Level 1

in Level 2

in Level 3

Level 3:class java.lang.ArithmeticException

In Level 3 finally

In Level 2 finally

In Level 1 finally

总结::当有多层嵌套的finally时,异常在不同的层次抛出,在不同的位置抛出,可能会导致不同的finally语句块执行顺序

动手动脑三:

辨析:finally语句块一定会执行吗?

请通过 SystemExitAndFinally.java示例程序回答上述问题

技术分享图片 SystemExitAndFinally

答:运行结果:

in main

Exception is thrown in main

结论:

1.只有与 finally 相对应的 try 语句块得到执行的情况下,finally 语句块才会有执行的前提条件。

2.如果在 try 语句块中执行了 System.exit (0) 语句,终止了 Java 虚拟机的运行,finally 语句块也不可以执行。

3.当一个线程在执行 try 语句块或者 catch 语句块时被打断(interrupted)或者被终止(killed),与其相对应的 finally 语句块可能不会执行。

4.更极端的情况,就是在线程运行 try 语句块或者 catch 语句块时,突然死机或者断电,finally 语句块肯定不会执行了。

 

知识点:如何跟踪异常的传播路径?

 

1.当程序中出现异常时,JVM会依据方法调用顺序依次查找有关的错误处理程序。

 

2.可使用printStackTrace 和 getMessage方法了解异常发生的情况:

 

3.printStackTrace:打印方法调用堆栈。

 

4.每个Throwable类的对象都有一个getMessage方法,它返回一个字串,这个字串是在Exception构造函数中传入的,通常让这一字串包含特定异常的相关信息。

归纳与总结

 

依据对本讲多个示例程序的分析,请自行归纳总结出Java多层嵌套异常处理的基本流程。

答:

Java中异常分类:

 

Throwable类有两个直接子类:

 

Exception:出现的问题是可以被捕获的;

 

Error:系统错误,通常由JVM处理。

 

可捕获的异常又可以分为两类:

 

(1)Check异常:直接派生自Exception的异常类,必须被捕获或再次声明抛出

 

(2)Runtime异常:派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象:

 

   throw new ArithmeticException(…);

处理流程:

1.try语句嵌套从外层到内层执行,在try语句中,哪一层出错,哪一层就抛出异常,该层后边的try语句就不再执行,如果该层存在catch就进行相应的捕获,且内层try中嵌套的try-catch语句外部如果还有语句会继续执行;如果该层没有catch进行捕获,就向外抛出,如果外部try-catch语句中也没有catch进行捕获,就终止程序。

2.try-catch-finally语句嵌套时,内层try抛出异常,即使catch没有捕捉到抛出的异常,内层的finally也一样会执行,然后异常继续向外抛出,除非遇到极特殊的System.exit(0)在finally语句之前的try-catch中,finally语句才不执行。

第八周动手动脑

1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。处理机制:把可能发生错误的代码放入try语句块中,当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并... 查看详情

每周进度条(第八周)

第八周进度条 第八周所花时间10代码量(行) 1000博客量(篇) 1学到的知识 进一步完善二柱子的网页版对HTML语言+JavaBean的掌握稍加熟练 查看详情

第八周2

查看详情

第八周--例行报告

Ⅰ本周PSPⅡ本周进度条Ⅲ累积折线统计图Ⅳ本周PSP饼状图 查看详情

第八周数据结构作业

查看详情

第八周总结

所学时间6小时代码量500  了解到的知识一个是运用webview进行操作一个了解了一下极光推送还未开始学习 查看详情

2018-4-29第八周作业

2018-4-29第八周作业网络攻防环境搭建第八周作业:=网络攻防环境搭建教材学习:本次介绍了linux基本架构,Linux的远程攻防技术,Linux系统结构。具体可以参考一下链接。=linux基本架构=linux系统结构kali视频课:SET工具的使用嗅探... 查看详情

第八周学习进度总结

 记录时间:第八周所花时间(包括上课)12h代码量(行)约300行博客量(篇)2篇了解到的知识点初步接触Android编程,开始进一步学习,开始团队冲刺 查看详情

学习进度第八周

时间10小时代码量300行博客2篇所学知识html、php、安卓等知识  查看详情

第八周

1.出现次数<script>         varstr="startstopstartstopstartstopstartstartstartstartstartstop";         varcou 查看详情

20165222—第八周学习

2017-2018-2《Java程序设计》第八周学习总结------------------------------------------------------------------------------------------------------十二章教材内容总结1:操作系统与进程之间的关系程序是一段静态的代码,进程是操作系统从产生代码至执... 查看详情

第八周总结

所学时间5小时代码行300行(200行python,100行java)博客量0知识点继续学习spring的ioc,python爬虫的进阶 查看详情

第八周作业20165307

玛云链接:https://gitee.com/BESTI-IS-JAVA-2018/20165307/tree/master代码统计截图: 查看详情

第八周java

importjava.util.Random;importjava.util.Scanner;publicclassMenu{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubmainMenu();}publicstaticvoidmainMenu(){Scannerinput=newScanner(System.in 查看详情

第八周

1、用shell脚本实现自动登陆机器#!/bin/expectsetip192.168.109.128setuserrootsetpasswordredhatsettimeout20spawnssh[email protected]$ipexpect"yes/no"send"yes\n";exp_continue"password& 查看详情

第八周进度条

所花时间(包括上课)6代码量(行)400博客量(篇)2了解到的知识点小组如何进行活动,任务如何分配,大概的创意 查看详情

20165316第八周学习总结

20165316第八周学习总结教材学习内容总结第十二章线程的一个生命周期有新建、运行、中断、死亡四个状态创建线程使用Thread的子类:必须extendsThread,重写run()方法。使用Thread类:Thread(Runnabletarget)。在创建对象时必须向构造方法... 查看详情

第八周psp

1.本周PSP 2.本周进度条 3.本周累计进度图代码行数积累折线图 博文字数积累折线图 4.本周PSP饼状图   查看详情