首页 > 代码库 > 名字空间和异常

名字空间和异常

那年是787年!公元?——Monty Python

任何规则都不可能如此一般,以至不能容许任何例外(异常)。——Bobert Burton

1、模块化和界面

  任何实际程序都是由一些部分组成的。例如,最简单的“ Hello, world! ”程序也涉及到至少两部分:用户代码要求将Hello, world!打印出来,I/O系统完成打印工作。

  当一个模块使用另一个模块时,它并不需要知道有关被用模块的所有东西。理想的情况是,一个模块的大部分细节都不为其使用都所知。为此,我们就需要将一个模块和它的界面区分开来。

  错误处理将遍及程序的整个结构。在将一个程序分解为模块时,或者从一些模块组合出程序时,我们都必须特别注意将由错误处理造成的模块之间的相互依赖减至最小。C++提供了异常机制,用于降低检查、报告错误和处理错误之间的联系程度。

  将系统划分为模块都很容易,最困难的是提供跨过模块边界的安全、方便而有效的通信。

2、名字空间

  名字空间是一种描述逻辑分组的机制。也就是说,如果有一些声明按照某种准则在逻辑上属于一个集团,就可以将它们放入同一个名字空间,以表明这个事实。

  一个名字空间也是一个作用域。一个程序越大,通过名字空间去描述其中逻辑上独立的各个部分也就越重要。常规的局部作用域、全局作用域和类也都是名字空间。

  理想情况是,程序里的每个实体都属于某个可以识别的逻辑单位。所以在理想情况下,一个非平凡的程序里的每个声明都应该位于某个名字空间里,以指明它在程序中所扮演的逻辑角色。main()例外,它必须是特殊的,以便运行时环境能够特殊对待它。