初探C++异常机制

  C++异常是对程序运行过程中发生的异常情况(例如被0除)的一种相应。异常提供了将控制权从程序的一个部分转移到另一个部分的途径。对异常的处理有3个组成部分:

1、引发异常

2、使用异常处理程序捕捉异常

3、在有可能发生异常的代码块使用try块

        catch关键字表示捕获异常。处理程序以关键字catch开头,随后是位于括号中的类型声明,他指出了异常处理程序要相应的异常类型。catch关键字和异常类型用作标签,指出当异常被引发时,程序应该跳到这个位置执行。异常处理程序也被称为catch块。

       try块用于可能引发异常的的代码块,它后面跟一个或者多个catch块。

示例代码如下:

// exception_1.cpp : 定义控制台应用程序的入口点。
//using an exception

#include "stdafx.h"
#include "iostream"

double hmean(double, double);

int _tmain(int argc, _TCHAR* argv[])
{
	double  x, y, z;
	
	std::cout << "Enter two numbers: ";
	while (std::cin >> x >> y)
	{
		try                             //start of try block     
		{
			z = hmean( x, y );
		}                               //end of try block 
		catch(const char* s)            //start of exception handler
		{
			std::cout << s << std::endl;
			std::cout << "Enter a new pair of nembers: ";
			continue;
		}
		std::cout << "Harmonic mean of " << x << "and "<<y << " is " << z << std::endl;
		std::cout << "Enter next set of nembers <q to quit>";
	}
	std::cout << "Bye!\n";
	return 0;
}


double hmean(double a, double b)
{
	if( a == -b)
		throw "bad hmean() arguments. a == -b not allowed";
	else
		return 2.0 * a * b / (a + b);

}
运行效果如图




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值