有关异常处理
try
{
int i=10;
i=i/0;
}
catch ( exception &e )
{
cerr << "Caught " << e.what( ) << endl;
cerr << "Type " << typeid( e ).name( ) << endl;
}
对异常处理用的比较少,也有点迷惑,原以为上面的语句会捕捉到溢出,不会导致程序crash,但是程序还是crash掉了。
难道异常处理就是应该要在i/0前检查出是否会有除以0的可能然后调用throw overflow_error("")来进行异常抛出吗?
这样的话在处理某些第三方的库的时候如果它遇到这种情况没有抛出异常那就根本处理不了了,终究只有程序crash。请大家指点一下。