Exception異常理解

2359 ワード

//  :exception n.        ;  ,     ;     ;
/*   exception   ,          ,     ,          */
#include "pch.h"
#include 
//             ,        ,   throw,                 exception
void compare_two_number(int a, int b) {
	if (a < 0 || b < 0)
	throw ("std::out_of_range");
	else {
		std::cout << ((a > b) ? a:b) << std::endl;
	}
}
//               
void compare_two_num(int a, int b) {
	while (1) {
		int a1, b1;
		a1 = a;
		b1 = b;
		if (a1 < 0 || b1 < 0)
		{
			std::cout << "           ,     " << std::endl;
			std::cout << "           " << std::endl;
			std::cin >> a1;
			std::cout << "           " << std::endl;
			std::cin >> b1;
			compare_two_num(a1, b1);
			break;  //  :      break  ,                 ,         while  
		}
		else {
			std::cout < b) ? a : b) << std::endl;
			break;
		}
	}
}
int main()
{
    //exception   
	//   ,         ,                 
	//1.     ,         
	compare_two_number(2, 3);
	//2.           
	//compare_two_number(-1, 3);  //                 ,                 ,       exception     ,          
	                             //    
	//3.           
	//try {
	//	compare_two_number(-2, 2);
	//}
	//catch (...) {
	//	//...             
	//	std::cout << "                ,       " << std::endl;
	//	int a, b;
	//	std::cout << "       " << std::endl;
	//	std::cin >> a;
	//	std::cout << "       " << std::endl;
	//	std::cin >> b;
	//	compare_two_number(a, b);
	//}
	/*                ,        */


	//4.          ,       
	try {
		compare_two_number(-2, 2);
	}
	catch (...) {
		//                       ,                   
		//  ,       ,                     
		//            
		while(1)
		{
			std::cout << "                ,       " << std::endl;
			int a, b;
			std::cout << "       " << std::endl;
			std::cin >> a;
			std::cout << "       " << std::endl;
			std::cin >> b;
			if (a < 0 || b < 0) {

			}
			else {
				std::cout << "          " << ((a > b) ? a : b) << std::endl;
				break;
			}
		}
	
		}




	//c               
	//compare_two_num(-2, 3);






}