#include <iostream>
#include <stdexcept>
#include <cassert>
//参考《C++ Primer》
int mdiv(int a, int b);
int main()
{
#ifndef NDEBUG
// 预处理,在debug模式下调试
// VC下#ifdef _DEBUG也能用,但NDEBUG更标准
std::cout<<__DATE__<<" at " //输出编译时间
<<__TIME__<<std::endl;
#endif
try{
int a, b;
while(std::cin>>a>>b){
//assert(b != 0); //assert一般用来测试不可能发生的情况
//没定义NDEBUG时才会运行assert
std::cout<<mdiv(a, b)<<std::endl;
}
}
catch(int t){
std::cout<<"t = "<<t<<' ';
if(0 == t)std::cout<<"except of deviding zero.\n";
}
catch(std::runtime_error err){
std::cout<< err.what()<<std::endl; //cout the error information
}//end of catch
std::cout<<"End test~\n"; //该语句会被执行
}
int mdiv(int a, int b)
{
if(0 == b){
throw b;
}
if(-1 == b){//测试不同异常抛出的情况
throw std::runtime_error("Testing, the b is -1!"); //define in <stdexcept>
}
return a/b;
}
异常处理入门例析
最新推荐文章于 2023-06-27 15:43:17 发布