当前位置:鱼C工作室 >C++ > 查看文章

assert函数和捕获异常 – C++快速入门32

assert函数和捕获异常

 

让编程改变世界

Change the world by program


 

assert函数

 

嗯嗯,C语言和C++都有一个专为调试而准备的工具函数,就是 assert()函数。

这个函数是在C语言的 assert.h 库文件里定义的,所以包含到C++程序里我们用以下语句:#include <cassert>

 

assert()函数需要有一个参数,它将测试这个输入参数的真 or 假状态。

如果为真,Do nothing!

如果为假,Do something!

 

看下边演示:test.cpp(课件及源代码下载

演示中,我们看到 assert()函数可以帮助我们调试程序。

 

我们可以利用它在某个程序里的关键假设不成立时立刻停止该程序的执行并报错,从而避免发生更严重的问题。

另外,除了结合 assert()函数,在程序的开发、测试阶段,我们还可以使用大量的 cout 语句来报告在程序里正在发生的事情。

 

用户体验与程序猿体验

 

对运行时错误的处理分为两种情况:

一种与程序猿有关,在开发、测试和调试程序的过程中,程序猿需要尽可能详细的信息来查找和纠正各种潜在的运行时错误。

另一种情况与最终用户有关,在使用一个程序的过程中,错误处理应该把用户的感受摆在第一位!

 

在理想的情况下,程序发布之前,它里边的所有错误都应该被发现和改正过来。

只可惜这是几乎不可能的,就连微软这样的大公司也做不出这样的保证!

 

注意,我们这几节课讨论的内容是从程序猿的角度展开的。这里介绍的一些技巧不应该用在一个即将交付给最终用户的应用程序里。

因为这样的用户使用体验会差到极点!

最为一条原则:最终用户看到的错误信息应该既专业又清晰,不能轻易中断程序,不能充满技术细节!

 

捕获异常

 

同样为了对付潜在的编程错误(尤其是运行时的错误),捕获异常是一种完全不同的办法。

简单地说,异常(exception)就是与预期不相符合的反常现象。

 

基本使用思路:

1. 安排一些C++代码(try语句)去尝试某件事 —— 尤其是那些可能会失败的事(比如打开一个文件或申请一些内存)

2. 如果发生问题,就抛出一个异常(throm语句)

3. 再安排一些代码(catch语句)去捕获这个异常并进行相应的处理。

 

捕获异常的基本语法如下:

try

{

// Do something.

// Throw an exception on error.

}

catch

{

// Do whatever.

}

Pay attention!每条 try 语句至少要有一条配对的 catch 语句。

必须定义 catch 语句以便让它接收一个特定类型的参数。

 

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.