如何在c++中捕获数据类型溢出异常?



这里,base可能溢出超出int的限制,导致运行时错误,此时我打算捕获所引发的运行时错误,并处理它,因此我尝试了try-catch块,但它没有被捕获。

int base=1;
try
{
base *= 10;
//some code
}
catch(...)
{
//some code
}

你不能。有符号整型上的算术溢出导致未定义行为,而不是异常。如果这样的溢出发生在你的程序中,那就太晚了。你不能做任何事情来保存程序。此时已处于未定义状态。

在执行乘法之前,应该检查潜在的溢出

相关内容

最新更新