传智扫地僧课程学习笔记。
#include "iostream"
using namespace std;
void divide( int x, int y)
{
if( y==0)
{
throw x;//抛出int类型异常
}
cout<<"divide结果:"<< x/y<<endl;
}
void mydivide( int x, int y)
{
try
{
divide( x, y);
}
catch( ...)
{
throw;//捕获到了异常,但是没有处理,向上抛出
}
}
void main()
{
try
{
divide( 10, 2);
//divide( 100, 0);
mydivide( 10, 2);
mydivide( 100, 0);
}
catch( int e)
{
cout<< e<<"被零除"<<endl;
}
catch( ...)
{
cout<< "其它未知类型异常"<<endl;
}
cout<<"hello"<<endl;
system("pause");
}
/*
异常是跨函数的,
异常可以不处理,往外抛出,但是这样,编译器会提示异常未处理
*/