第七章异常控制流
- 格式:ppt
- 大小:1.51 MB
- 文档页数:83


控制流、异常处理练习题答案
1、 D
2、A、B、E
3、F
代码没有任何错误。Case和default标签不需要以任何特定的次序来指定。Break语句的使用不是强制的,并且没有他的话控制流也会简单的在switch语句的标签处结束。
4、A
Switch表达式的类型必须是byte、char、short、int。case标签的类型必须是可以向switch表达式类型赋值的。
5、E
6、B、E
7、F
8、A、D
9、D
10、C
11、A、C
块结构{}是一个复合语句。复合语句可以包含0或更多的任意语句。Continue语句不能再循环的上下文之外使用。Break语句也可以来中断标签块。
12、D
13、B、E
14、D
该程序可以无错的被编译,但在运行时会抛出NullPointerException。Throw语句只能抛出throwable对象。如果throw语句的表达式导致一个null引用,就会抛出NullPointerException。
15、B
第一个catch块处理了InterruptedException。在这个块中还抛出一个新的RuntimeException。Try块内部不会抛出这个异常,也不会通过catch块对其进行处理,而是把它发送给main()方法的调用程序。在进行这个处理之前会执行finally块。打印5的代码永远不会执行,因为在执行了finally块之后仍然没有捕获RuntimeException。
16、B
该代码唯一有问题的地方在于catch和finally块的次序。如果出现的话,finally块必须总是位于try-catch-finally结构的末尾。
17、C
18、B、E
19、B
语句continue outer;也可以起到同样的效果。
20、B
21、A、D
22、A、B、C
23、A、B、C
24、D
25、A、E
26、C、D
本题考察的重点是方法中抛出异常的声明。在方法体中,如果使用了throw语句抛出一个异常,则必须在方法声明中采用throws语句声明方法中抛出的异常。
异常处理基本流程七步
1. 异常发生:
当程序执行过程中出现异常情况时,例如数据错误、内存溢出、文件读写错误等,异常就会发生。
2. 获取异常信息:
一旦异常发生,系统会自动创建一个异常对象,其中包含异常类型和异常原因等信息。
3. 查找异常处理程序(异常捕获):
系统会从异常发生的点开始,沿着方法调用栈向上查找,看是否有对应的异常处理程序(catch块)。
4. 异常处理:
如果找到了匹配的异常处理程序,就会执行该程序块中的代码,进行异常处理。
5. 清理资源(finally块):
无论是否捕获到异常,finally块中的代码都会被执行,通常用于资源清理,如关闭文件、断开连接等。
6. 继续执行:
异常处理完毕后,程序会从异常处理程序的下一行继续执行。
7. 异常传播(未捕获时): 如果一直没有找到匹配的异常处理程序,异常就会一直向上传播,直到程序退出。
通过上述七个步骤,程序可以有效地处理各种异常情况,保证程序的正常运行和系统的稳定性。在编写代码时,合理设置异常处理程序至关重要。
1 第七章 船舶机舱辅助控制系统
1.中央冷却水温度控制系统的组成包括:
①温度传感器 ② ENGARD控制器 ③低温淡水温度调节阀 ④中央冷却器
⑤流量传感器 ⑥海水温度调节阀
B ①②③④
2.在中央冷却水温度控制系统中,ENGARD控制器内部的印刷电路板上不包括:
D 定时/计数器
3.在中央冷却水温度控制系统中,ENGARD控制器能对冷却水温度进行:
C 比例积分定值控制
4.ENGARD中央冷却水温度控制系统主要是对______的控制。
A 低温淡水温度和海水流量
5.ENGARD中央冷却水温度控制系统的工作原理是:
B 淡水温度在一定的范围内变化时,通过低温淡水调节阀控制流经中央冷却器的淡水量,使淡水温度恢复到给定值。
6.ENGARD中央冷却水温度控制系统的功能不包括:
D 主淡水泵的控制和高温淡水温度控制
7. ENGARD中央冷却水温度控制系统投入自动运行的前提条件不是:
D 海水泵处于自动控制方式
8. 在ENGARD中央冷却水温度控制系统中,手动/自动操作模式可通过控制面板上的手动/自动模式按钮来选择。当系统工作在自动方式时,若按二次按钮则可选择:
C 低温淡水调节阀手动工作方式
9. 在ENGARD中央冷却水温度控制系统的参数整定时,首先将ENOARD控制箱内的模式选择开关置于:
A P位置
10. ENGARD中央冷却水温度控制系统在自动方式下正常工作时,则在控制面板的液晶窗口中将会显示出:
D 调节阀开度值和低温淡水温度值,
11. ENGARD中央冷却水温度控制系统出现故障时,将在控制面板的液晶窗口中显示故障代码,主要故障包括:
①淡水温度异常 ②海水温度偏高 ③通信故障
④控制单元故障 ⑤海水流量偏大 ⑥海水压力偏高
B ①②③④
12. 在ENGARD中央冷却水温度控制系统中,若发生淡水温度过高报警,故障原因不可能是:
D 某台海水泵故障
CSAPP第⼋章
CSAPP第⼋章
参考
8.1异常
异常是异常控制流的⼀种形式,⼀部分由硬件实现,⼀部分由操作系统实现
a transfer of control to the OS kernel in response
to some event
异常(exception)控制流的突变,⽤来响应处理器状态的某些变化。
事件(event)状态变化
事件可能与当前执⾏指令有关
存储器缺页,算数溢出
除0
也可能与当前执⾏指令⽆关
I/O请求定时器产⽣信号
通过异常表(exception table)的跳转表,进⾏间接过程调⽤(异常),到专门设计处理这种事件的操作系统⼦程
序(异常处理程序(exception handler)
异常处理程序在执⾏结束后,会发⽣以下三种情况之⼀:
1. 返回应⽤程序当前指令Icurr
2. 返回应⽤程序的下⼀条指令Inext
3. 异常处理程序终⽌被中断的应⽤程序
8.1.1 异常处理
系统启动时,操作系统分配和初始化⼀张称为异常表的跳转表。
条⽬k包含异常k的处理程序的地址。
异常表的起始地址放在叫异常表基址寄存器的特殊CPU寄存器中。
异常类似过程调⽤,不过有以下不同
过程调⽤,跳转到处理程序前,处理器将返回地址压⼊栈中。对于异常,返回地址是当前,或下⼀跳指
令。
处理器会把额外的处理器状态压⼊栈中。
如果控制⼀个⽤户程序到内核,那么所有这些项⽬会被压⼊内核栈中,⽽是⽤户栈。
异常处理程序运⾏在内核模式下,这意味他们对所有系统资源有完整访问权限。
8.1.2 异常的类别
同步 synchronous 当⼀个⽅法被调⽤时,调⽤者需等待该⽅法执⾏完毕返回才能继续执⾏
异步 asynchronous 当⼀个⽅法被调⽤时,⽴即返回,并获取⼀个线程执⾏该⽅法内部的业务,调⽤者不⽤等待该⽅法执⾏完毕
1.中断
中断异步发⽣,来⾃处理器外部的I/O设备的信号的结果
硬件中断不是由任何⼀条专门的指令造成,从⼀定意义上时异步的