面向对象程序设计-命题作业

更新时间:2023-11-07 00:48:01 阅读量: 自然科学 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

兰州大学远程教育-面向对象程序设计 命题作业

一、如何捕获异常:检查异常与非检查异常

检查异常对方法用者来说于必须处理的异常,当一个应用系统定义了大量或者容

易产生很多检查异常的方法调用,程序中会有很多的异常处理代码。如果一个异常是

致命的且不可恢复并且对于捕获该异常的方法根本不知如何处理时,或者捕获这类异

常无任何益处,我认为应该定义这类异常为非检查异常,由顶层专门的异常处理程序

处理;像数据库连接惜误、网络连接错误或者文件打不开之类的异常一般均属于非检查异常。这类异常一般与外部环境相关,一旦出现,基本无法有效地处理。

而对于一些具备可以回避异常或预料内可以恢复并存在相应的处理方法的异常,

可以定义该类异常为检查异常。像一般由输入不合法数据引起的异常或者与业务相关

的一些异常,基本上属于检查异常,当出现这类异常,一般可以经过有效处理或通过

重试可以恢复正常状态。

由于检查异常属于必须处理的异常,在存在大量的检查异常的程序中,意味着很

多的异常处理代码。另外,检查异常也导致破坏接口方法,如果一个接口上的某个方

法已被多处使用,当为这个方法添加一个检查异常时,导致所有调用此方法的代码都

需要修改处理该异常。当然,存在合适数量的检查导常,有助于避免许多潜在的错误。

到底何时使用检查异常何时使用非检异常,并没有一个绝对的标准,需要依据具

体情况而定。很多情况,在我们的程序中需要将检查异常包装成非检查异常抛给顶层

程序统一处理;而有些情况需要将非检查异常包装成检查异常统一抛出。

二、理解异常从中找到处理方式

从应用系统最终用户的角度来看,用户所面对的是系统中所提供的各种业务功能

以及系统本身的管理功能。用户并不理解系统内部是如何实现以及如何运行的,系统

运行对用户来说如同一个黑盒一样。对用户而言,系统所出现的任何异常或错误,都

属于系统运行时异常。对于这些异常,有些异常是用户可以理解并能解决的;而另外一些异常是用户无法理解和解决的。当一个系统错误出现时,系统本身需要反馈给用户

一种可理解的业务相近的信息,从而用户可以根据这些信息去尽可能解决问题。另一

方面,有一类错误属于系统内部运行异常或错误,用户对此类错误根本无能为力。而

这类异常同样需要提供足够详细的信息,系統管理员可根据这类异常尽可能解决。一

般情况下,如果异常面向系统用户,以系统异常呈现更好。

从系统开发者角度来看,更多的是从系统内部逻辑来看异常。有一部分异常需要

内部截获处理,而另外一部分异常对于异常产生源而言无法进行有效处理,从而需要

向外抛出异常以待合适的调用者进行处理。对于开发者而言,需要预见异常,并且需

要考虑何时处理异常,何时抛出异常,必要时以某种方式记录或通知异常。总而言之,开发者需要通过对系统运行时可能出现的异常尽可能地处理以保证系统的正常运行,

兰州大学远程教育-面向对象程序设计 命题作业

并对于无法处理的异常以一种合适的方式记录、通知、呈现以便找到发生异常的原因,从而解决或避免异常。

三、异常处理机制

我认为异常包含三部分,异常 Service、异常处理过滤器、系统异常层次定义。

异常Service:整个异常框架的核心,通常用于主动拦截异常或被动调用处理异常。根据具体业务需要,调用通用服务程序进行一般化异常处理,如日志服务、异常消息

通知服务等;另外,异常service最主要目的用于拦截并处理异常,其需要维护定制的异常处理器链,用于特定类型异常的特定处理。

异常处理过滤器:维护系统中各种异常处理器,包括增加异常处理器、删除异常

处理器、查找异常处理器操作等。其中最主要的功能是接收特定异常并找到与之匹配

的异常处理器进行处理。异常处理过滤器具体实现可以通过一个配置文件维护所有异

常与异常处理器的映射,另外可以通过另外一个配置文件维护系统中所有已定义的异

常处理器。从而,异常处理过滤器可以通过配置文件进行初始化操作。

异常层次定义:异常层次定义应用系统的异常基础结构,是异常处理过滤器所处

理的目标异常类型集合。异常处理机制是软件系统体系结构需要考量的很重要的一方面。好的异常处理机制既能条理清晰地处理异常,又能保证异常处理的可扩展性与可

用性,最后还需要保证系统的性能不受额外的损失。

本文来源:https://www.bwwdw.com/article/sgg2.html

Top