相关疑难解决方法(0)

C++捕获所有异常

是否有Java的c ++等价物

try {
    ...
}
catch (Throwable t) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试调试调用本机Windows函数的Java/jni代码,并且虚拟机不断崩溃.本机代码在单元测试中看起来很好,并且在通过jni调用时似乎只会崩溃.一般的异常捕获机制将证明是非常有用的.

c++ exception

226
推荐指数
12
解决办法
33万
查看次数

捕获异常:除以零

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

int i = 0;

cin >> i;  // what if someone enters zero?

try {
    i = 5/i;
}
catch (std::logic_error e) {

    cerr << e.what();
}
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling

35
推荐指数
3
解决办法
8万
查看次数

C++:捕获除零错误

这是一段简单的代码,其中除以零.我想抓住它:

#include <iostream>

int main(int argc, char *argv[]) {
    int Dividend = 10;
    int Divisor = 0;

    try {
        std::cout << Dividend / Divisor;
    } catch(...) {
        std::cout << "Error.";
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是应用程序无论如何都会崩溃(即使我选择-fexceptionsMinGW).

是否有可能捕获到这样的异常(我理解的不是C++异常,而是FPU异常)?

我知道我可以分割之前检查除数,但我做了一个假设,因为除零是罕见的(至少在我的应用程序中),尝试分割会更有效(并且如果捕获错误则更有效)它发生)而不是每次除数前的除数.

我正在WindowsXP计算机上进行这些测试,但是想让它跨平台.

c++ performance exception-handling mingw

27
推荐指数
4
解决办法
5万
查看次数

除以零时会抛出什么类型的异常?

当出现零除错误时会抛出什么样的异常?我尝试使用"catch-all" catch(...),但Visual Studio仍然抱怨有一个未处理的异常.

int a = 0;
try
{
    a /= a;
}
catch (/* what should I catch?*/)
{
    cout << "divide by zero error" << endl;
}
Run Code Online (Sandbox Code Playgroud)

注意:我不是问如何预先防止这种类型的问题(例如,在尝试除以零之前检查a是否为零).

c++ visual-c++

2
推荐指数
1
解决办法
1577
查看次数