简单的 C++异常处理

来源:互联网 发布:四川版小学英语软件 编辑:程序博客网 时间:2024/05/16 17:20

一个简单的防治除数为 0 的 异常处理类

 

// DivideByZeroException.h: interface for the DivideByZeroException class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_DIVIDEBYZEROEXCEPTION_H__113A7977_0A63_4B31_A4DC_07FBD3EFC752__INCLUDED_)
#define AFX_DIVIDEBYZEROEXCEPTION_H__113A7977_0A63_4B31_A4DC_07FBD3EFC752__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#include <stdexcept>
using namespace std;
#endif // _MSC_VER > 1000

class DivideByZeroException :public runtime_error
{
public:
 DivideByZeroException();
 virtual ~DivideByZeroException();

};

#endif // !defined(AFX_DIVIDEBYZEROEXCEPTION_H__113A7977_0A63_4B31_A4DC_07FBD3EFC752__INCLUDED_)

 

 

 

 


// DivideByZeroException.cpp: implementation of the DivideByZeroException class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DivideByZeroException.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

DivideByZeroException::DivideByZeroException():runtime_error("attemp to divide by zero")
{

}

DivideByZeroException::~DivideByZeroException()
{

}

 

 

 

// TestException.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include "DivideByZeroException.h"

using namespace std;

double Quotient(int nNumerator, int nDenominator)
{
 if (0 == nDenominator)
 {
  throw DivideByZeroException();
 }
 else
 {
  return static_cast<double>(nNumerator)/nDenominator;
 }
}

 

 

int main(int argc, char* argv[])
{
 int nNumber1 = 0;
 int nNumber2 = 0;
 double dResult = 0.0;

 cout<<"请输入两个整形数据 : ";

 while (cin >> nNumber1 >> nNumber2)
 {
  try
  {
   dResult = Quotient(nNumber1,nNumber2);
   cout<<"/n/n其结果为 :"<<dResult<<endl<<endl;
  }
  catch (DivideByZeroException & dividebyzeroexception)
  {
   cout<<"Exception occurred :"<<dividebyzeroexception.what()<<endl;
  }

  cout<<"请输入两个整形数据 : ";

 }

 
 return 0;
}

 

原创粉丝点击