内容:
说明:
异常捕获
示例代码:
// 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; }
知识点:
异常的捕获