试试c ++中的catch duo

Pra*_*van 3 c++ error-handling exception try-catch

我知道使用try catch duo的一般方法是这样的:

try
{
   //your code
}
catch(...)
{
   //any error goes here
}
Run Code Online (Sandbox Code Playgroud)

是否有一种方法catch()捕获错误代码而不给出任何输入...即如果我没有抛出异常但c编译器没有,那么错误代码可以是任何东西.我只需要捕获任何错误代码,并通知所有.

Fre*_*Foo 10

显然,您正在尝试catch从不抛出异常但返回数字错误代码的函数中获取错误.这不可能.您可以获得的最接近的是将所有C函数包装在异常抛出代码中:

FILE *safe_fopen(char const *path, char const *mode)
{
    FILE *f = std::fopen(path, mode);
    if (f == NULL)
        throw std::runtime_error(std::strerror(errno));
    return f;
}
Run Code Online (Sandbox Code Playgroud)

当程序解析空指针或无效的内存时,不可能抛出异常,至少不是以可移植的方式; 当发生这种情况时,行为就是未定义的.没有要检查的错误代码,只是大多数操作系统上的段错误.

但请直截了当地说出你的术语.该编译器不会抛出一个异常,一个函数可以这样做,在运行时.该ç编译器已经很少做这一切.