这里,base可能会溢出超出int的限制,导致运行时错误,此时我打算捕获引发的运行时错误并处理它,所以我尝试了try-catch块,但它没有被捕获。
int base=1;
try
{
base *= 10;
//some code
}
catch(...)
{
//some code
}
Run Code Online (Sandbox Code Playgroud)
你不能。有符号整型上的算术溢出会导致未定义的行为,而不是异常。如果这样的溢出发生在你的程序中,那就太晚了。您无法执行任何操作来保存该程序。此时它已经处于未定义状态。
在执行乘法之前,您应该检查是否存在潜在的溢出。
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |