发生错误时如何终止应用程序?
How to terminate an application when an error happnes?
我正在使用名为 Irrlicht 的图形库
在某些时候我必须写这段代码
if(!device){
//error code here`
}
我不在主函数中,但想在发生此错误时关闭应用程序
请记住,我是初学者,所以这个问题听起来很愚蠢
我看到有些人这样做:
int main(){
if(!device){
return 1;
}
return 0;
}
我不在主函数中,想在主函数外退出应用程序
以下示例让您了解一些可能性。
您可以简单地复制和粘贴它并尝试一下。只需使用一行“终止操作”,如 throw
或 exit
。如果您在 main 函数中没有 try catch block
,您的应用程序也会终止,因为不会捕获异常。
struct DeviceNotAvailable {};
struct SomeOtherError{};
void func()
{
void* device = nullptr; // only for debug
if (!device)
{
// use only ONE of the following lines:
throw( DeviceNotAvailable{} );
//throw( SomeOtherError{} );
//abort();
//exit(-1);
}
}
int main()
{
// if you remove the try and catch, your app will terminate if you
// throw somewhere
try
{
func();
}
catch(DeviceNotAvailable)
{
std::cerr << "No device available" << std::endl;
}
catch(SomeOtherError)
{
std::cerr << "Some other error" << std::endl;
}
std::cout << "normal termination" << std::endl;
}
我正在使用名为 Irrlicht 的图形库 在某些时候我必须写这段代码
if(!device){
//error code here`
}
我不在主函数中,但想在发生此错误时关闭应用程序 请记住,我是初学者,所以这个问题听起来很愚蠢 我看到有些人这样做:
int main(){
if(!device){
return 1;
}
return 0;
}
我不在主函数中,想在主函数外退出应用程序
以下示例让您了解一些可能性。
您可以简单地复制和粘贴它并尝试一下。只需使用一行“终止操作”,如 throw
或 exit
。如果您在 main 函数中没有 try catch block
,您的应用程序也会终止,因为不会捕获异常。
struct DeviceNotAvailable {};
struct SomeOtherError{};
void func()
{
void* device = nullptr; // only for debug
if (!device)
{
// use only ONE of the following lines:
throw( DeviceNotAvailable{} );
//throw( SomeOtherError{} );
//abort();
//exit(-1);
}
}
int main()
{
// if you remove the try and catch, your app will terminate if you
// throw somewhere
try
{
func();
}
catch(DeviceNotAvailable)
{
std::cerr << "No device available" << std::endl;
}
catch(SomeOtherError)
{
std::cerr << "Some other error" << std::endl;
}
std::cout << "normal termination" << std::endl;
}