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)
当程序解析空指针或无效的内存时,不可能抛出异常,至少不是以可移植的方式; 当发生这种情况时,行为就是未定义的.没有要检查的错误代码,只是大多数操作系统上的段错误.
但请直截了当地说出你的术语.该编译器不会抛出一个异常,一个函数可以这样做,在运行时.该ç编译器已经很少做这一切.