内容:
说明:
异常捕获
示例代码:
// Cppexceptionhandling.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <stdexcept>
using namespace std;
int largest_proper_divisor( int n )
{
if( n == 0 )
{
throw invalid_argument( "largest proper divisor is not defined for n=0" );
}
if( n == 1 )
{
throw invalid_argument( "largest proper divisor is not defined for n=1" );
}
for( int i = n / 2; i >= 1; --i )
{
if( n % i == 0 )
{
return i;
}
}
return -1; // will never happen
}
void process_input( int n )
{
try
{
int d = largest_proper_divisor( n );
cout << "result=" << d << endl;
}
catch( invalid_argument e )
{
cout << e.what() << endl;
}
cout << "returning control flow to caller" << endl;
}
//by zhaocl
int main()
{
int n;
cin >> n;
process_input( n );
system( "pause" );
return 0;
}
知识点:
异常的捕获