程序结束时的C错误处理



我已经阅读了很多关于c语言错误处理的教程和初学者问题,它们似乎都是朝着这个方向发展的:

int main(){
if(condition){
    fprintf(stderr, "Something went wrong");
    exit(EXIT_FAILURE); // QUIT THE PROGRAM NOW, EXAMPLE: ERROR OPENING FILE
}
exit(0)
}

我的问题:在C中是否有任何特定的函数可以让我捕获错误,但只影响程序(main)退出时的状态?我的想法的例子:

int main(){
if(condition){
    fprintf(stderr, "Something went wrong");
    // Continue with code but change exit-status for the program to -1 (EXIT_FAILURE)
}
exit(IF ERROR CATCHED = -1)
}
或者我必须创建一些自定义函数或使用一些指针?

如果你想继续,你不必调用exit(),对吧?您可以使用影响main()退出代码的变量。

#include <stdio.h>
int main(void){
   int main_exit_code = EXIT_SUCCESS;
   if(condition){
      fprintf(stderr, "Something went wrong");
      main_exit_code = -1; /* or EXIT_FAILURE */
   }
   return (main_exit_code);
}

但是请注意,根据您遇到的错误类型,在所有情况下继续执行可能没有意义。所以,我把这个留给你们来决定

exitint为状态,您可以将此状态存储在变量中,并在末尾使用此值调用exit:

int main(void)
{
    int res = EXIT_SUCCESS;
    if (condition) {
       fprintf(stderr, "Something went wrong");
       res = EXIT_FAILURE;
    }
    /* Continue with code */
    exit(res);
}

相关内容

  • 没有找到相关文章

最新更新