在本机C++中捕获整数除以零并访问违规异常的方法如下:
try-catch
语句捕获异常。#include<iostream>
#include <stdexcept>
int main() {
int a = 10;
int b = 0;
try {
if (b == 0) {
throw std::runtime_error("除数不能为零");
}
int result = a / b;
std::cout << "结果为:"<< result<< std::endl;
} catch (const std::runtime_error& e) {
std::cerr << "捕获到异常:" << e.what()<< std::endl;
}
return 0;
}
signal
库捕获信号。#include<iostream>
#include <csignal>
#include <cstdlib>
void signalHandler(int sig) {
std::cerr << "捕获到信号:"<< sig<< std::endl;
exit(1);
}
int main() {
signal(SIGFPE, signalHandler);
int a = 10;
int b = 0;
int result = a / b;
std::cout << "结果为:"<< result<< std::endl;
return 0;
}
在这两种方法中,第一种方法更为推荐,因为它更加灵活和安全。使用try-catch
语句可以更好地控制程序的执行流程,而且可以处理任何类型的异常,而不仅仅是整数除以零。此外,使用try-catch
语句可以更好地处理异常,避免程序崩溃或出现未定义行为。
领取专属 10元无门槛券
手把手带您无忧上云