先来看一个简单的程序:
- #include <iostream>
- using namespace std;
-
- int main()
- {
- int a = 100;
- int b = 0;
- int c = 0;
-
- for(b = -1; b <= 1; b++)
- {
- try
- {
- c = a / b;
-
- // 因为b为0, 出现异常, 所以下面语句不会执行
- cout << "try" << endl;
- }
- catch(...)
- {
- cout << "catch" << endl;
- }
-
- cout << "out" << endl;
- }
-
- return 0;
- }
结果为:
try
out
catch
out
try
out
上面程序利用了C++中的异常机制,我们再来看两个程序:
- #include <iostream>
- using namespace std;
-
- int main()
- {
- int *p = NULL;
-
- //try
- {
- *p = 0;
- cout << "try" << endl;
- }
- //catch(...)
- {
- cout << "catch" << endl;
- }
-
- return 0;
- }
运行时会出错, 大忌啊。 需要改为如下:
- #include <iostream>
- using namespace std;
-
- int main()
- {
- int *p = NULL;
-
- try
- {
- *p = 0;
- cout << "try" << endl;
- }
- catch(...)
- {
- cout << "catch" << endl;
- }
-
- return 0;
- }
结果为:catch
异常机制在实际开发中, 会经常见到, 可以增强程序的稳健性。