java的违例规范

在Java中,对那些要调用方法的客户程序员,我们要通知他们可能从自己的方法里“掷”出违例。这是一种有礼貌的做法,只有它才能使客户程序员准确地知道要编写什么代码来捕获所有潜在的违例。当然,若你同时提供了源码,客户程序员甚至能全盘检查代码,找出相应的throw语句。但尽管如此,通常并不随同源码提供库。为解决这个问题,Java提供了一种特殊的语法格式(并强迫我们采用),以便礼貌地告诉客户程序员该方法会“掷”出什么违例,令对方方便地加以控制。这便是我们在这里要讲述的“违例规范”,它属于方法声明的一部分,位于自变量(参数)列表的后面。
违例规范采用了一个额外的关键字:throws;后面跟随全部潜在的违例类型。因此,我们的方法定义看起来应象下面这个样子:
void f() throws tooBig, tooSmall, divZero { //...
若使用下述代码:
void f() [ // ...
它意味着不会从方法里“掷”出违例(除类型为RuntimeException的违例以外,它可能从任何地方掷出——稍后还会详细讲述)。
但不能完全依赖违例规范——假若方法造成了一个违例,但没有对其进行控制,编译器会侦测到这个情况,并告诉我们必须控制违例,或者指出应该从方法里“掷”出一个违例规范。通过坚持从顶部到底部排列违例规范,Java可在编译期保证违例的正确性(注释②)。

②:这是在C++违例控制基础上一个显著的进步,后者除非到运行期,否则不会捕获不符合违例规范的错误。这使得C++的违例控制机制显得用处不大。

我们在这个地方可采取欺骗手段:要求“掷”出一个并没有发生的违例。编译器能理解我们的要求,并强迫使用这个方法的用户当作真的产生了那个违例处理。在实际应用中,可将其作为那个违例的一个“占位符”使用。这样一来,以后可以方便地产生实际的违例,毋需修改现有的代码。

时间: 2024-11-08 23:26:33

java的违例规范的相关文章

Java 程序编码规范

编码|程序|规范 Java 程序编码规范 李小敏www.yway.com 软件工程师2000年12月内容: 命名惯例 Java文件样式 代码编写格式 程序编写 编程技巧 Swing 调试 性能 可移植性 参考资料 作者简介    所有的程序开发手册都包含了各种规则.一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的.这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑.命名规范 定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性

Java程序编码规范!不仅仅是规范,还有为什么这样做的理由,不错哦!

编码|程序|规范 Java程序编码规范 所有的程序开发手册都包含了各种规则.一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的.这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑. 命名规范定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失.(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性) Package 的命名Package 的名字应该都是由一个小写单词组成. Class 的

Java的违例控制:解决错误

从最古老的程序设计语言开始,错误控制一直都是设计者们需要解决的一个大问题.由于很难设计出一套完美的错误控制方案,许多语言干脆将问题简单地忽略掉,将其转嫁给库设计人员.对大多数错误控制方案来说,最主要的一个问题是它们严重依赖程序员的警觉性,而不是依赖语言本身的强制标准.如果程序员不够警惕--若比较匆忙,这几乎是肯定会发生的--程序所依赖的错误控制方案便会失效. "违例控制"将错误控制方案内置到程序设计语言中,有时甚至内建到操作系统内.这里的"违例"(Exception

Java开发编码规范

Java开发编码规范   Java 命名约定. 采用适用于相关领域的术语 采用大小写混合使名字可读 尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一 避免使用长的名字(一般小于15个字母) 避免使用类似的名字,或者仅仅是大小写不同的名字 避免使用下划线(除静态常量等) 包(Package) 采用完整的英文描述符,应该都是由小写字母组成.对于全局包,将你的 Internet 域名反转并接上包名. 例如:java.awt,com.ambysoft.www.persistence 类(Cla

Java代码注释规范详解_java

代码附有注释对程序开发者来说非常重要,随着技术的发展,在项目开发过程中,必须要求程序员写好代码注释,这样有利于代码后续的编写和使用. 基本的要求: 1.注释形式统一 在整个应用程序中,使用具有一致的标点和结构的样式来构造注释.如果在其它项目中发现它们的注释规范与这份文档不同,按照这份规范写代码,不要试图在既成的规范系统中引入新的规范. 2.注释内容准确简洁 内容要简单.明了.含义准确,防止注释的多义性,错误的注释不但无益反而有害. 3.基本注释(必须加) (a) 类(接口)的注释 (b) 构造函

诊断Java代码: 在规范钢丝上行走

要构建可靠的软件,程序规范很关键.没有良好定义的规范,很难诊断软件系统的异常行为.但是很多软件系统的程序规范定义得很差劲.而且更糟的,是许多软件系统根本就没有规范. 直观的看,程序规范是对程序行为的一种描述.它可以采取许多形式,但无论采取何种形式,都有一条主线贯穿所有实例:必须有某种类型的系统规范,因为您得依靠它来判断系统是否运转正常. 规范可以形式化也可以松散地定义,这取决于开发中系统的稳定性和危险程度,还与开发完毕后修改系统的容易程度有关. 我们将通过讨论规范为什么重要.为什么会经常被忽略以

第2章番外 Java的命名规范

Java开发者对Java的代码风格有自己的规范,良好的代码风格是非常重要的.下面来说下各种命名规范: 包命名(全小写,反写域名) Java引入包的机制很大程度是为了解决重名问题,这有点想C++的命名空间的作用. 包实际上提供了一种命名机制和可见性机制. 为了最大程度地防止重名,包名必须具有唯一性. Java包的名字都是由小写单词组成.但是由于Java面向对象编程的特性,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在

Java语言编码规范(Java Code Conventions)

编码|规范   1 介绍(Introduction)1.1 为什么要有编码规范(Why Have Code Conventions)编码规范对于程序员而言尤为重要,有以下几个原因:- 一个软件的生命周期中,80%的花费在于维护- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 为了执行规范,每个软件开发人员必须

Java语言编码规范

编码|规范 1 介绍(Introduction) 1.1为什么要有编码规范 编码规范对于程序员而言尤为重要,有以下几个原因: - 一个软件的生命周期中,80%的花费在于维护- 几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护- 编码规范可以改善软件的可读性,可以让程序员尽快而彻底地理解新的代码- 如果你将源码作为产品发布,就需要确任它是否被很好的打包并且清晰无误,一如你已构建的其它任何产品 为了执行规范,每个软件开发人员必须一致遵守编码规范. 1.2版权声明 本文档反映的是Su