捕获异常:除以零

捕获异常:除以零

当我尝试除以0时,下面的代码没有捕获异常。我是否需要抛出异常,或者计算机是否在运行时自动抛出一个异常?

int i = 0;cin >> i;  // what if someone enters zero?try {
    i = 5/i;}catch (std::logic_error e) {

    cerr << e.what();}


九州编程
浏览 546回答 3
3回答

宝慕林4294392

据我所知,C ++规范没有提及除零除外的任何内容。我相信你需要自己做...Stroustrup在“C ++的设计和演变”(Addison Wesley,1994)中说,“低级事件,例如算术溢出和除以零,假设由专用的低级机制而不是异常处理这使得C ++能够在算术运算时匹配其他语言的行为。它还避免了在流水线严重的体系结构中出现的问题,其中除以零之类的事件是异步的。“
打开App,查看更多内容
随时随地看视频慕课网APP