怎样使用? C语言异常处理和exit (怎样使用CHATGPT)
本文目录导航:
C语言异常处理和exit()怎样使用?
c语言中exit()函数的用法:用exit()函数可以退出程序并将控制权返回给操作系统,而用return语句可以从一个函数中返回并将控制权返回给调用该函数的函数。
如果在main()函数中加入return语句,那么在执行这条语句后将退出main()函数并将控制权返回给操作系统,这样的一条return语句和exit()函数的作用是相同的。
下例是一个使用了exit()函数和return语句的程序:#include <stdio.h>#include <stdlib.h>int main (int, char** );int do_processing (void);int do_something_daring();int main (int argc, char** argv){int ret_code;if (argc <3){ printf (Wrong number of arguments used ! \n); /* return 1 to the operating system * / exit(1);}ret_code = do_processing ();...... /* return 0 to the operating system * / exit(0); }int do_processing(void){int rc;rc = do_aomcthing_daring(); if (rc == ERROR) { printf (Something fiahy ia going on around here... *\n); /* return rc to the operating syatem * / exit (re); } /* return 0 to the calling function * / return 0;}在上例的main()函数中,如果argc小于3,程序就会退出。
语句“exit(1)”指示程序在退出时将数字1返回给操作系统。
操作系统有时会根据程序的返回值进行一些相关的操作,例如许多DOS批处理文件会通过一个名为ERRORLEVEL的全局变量来检查可执行程序的返回值。

C语言异常处理
bad_alloc:new分配失败bad_cast:dynamic_cast失败bad_typeid:typeif参数为空logic_error:逻辑错误ios_base::failure:IO错误runtime_error:运行时错误bad_exception:未知错误赋值不成功可以用runtime_error,你也可以自己继承一个异常类过来,自定义异常信息
C、C++、Java、Python、Go、Rust、Dart 异常处理
本文为七种语言对比学习的第十六篇:异常处理。
程序中往往会出现错误和异常。
错误会导致程序崩溃和运行出错,而异常则能得到处理并恢复,下文将异常和错误统称为异常。
C语言不直接提供错误处理,但作为系统编程语言,它以返回值的形式允许访问底层数据。
C语言中,正常退出会返回0;在发生错误时,大多数的C函数返回1或-1,同时会设置一个错误代码errno,该错误代码为全局变量,表示在函数调用期间发生了错误。
C语言提供了perror()和strerror()函数来显示与errno相关的消息。
perror()函数显示传给它的字符串,strerror()函数返回一个指针,指针指向当前errno值的文本表示。
C++语言提供错误处理机制:C++语言提供异常处理机制,通过try-catch块来捕获并处理异常。
Java语言提供错误处理机制:Java语言利用try-catch-finally块来处理异常,其中try块包含可能抛出异常的代码,catch块捕获并处理异常,finally块包含异常处理后的清理代码。
Python异常处理:Python自带一套错误断言,处理机制,通过try-except语句捕获并处理异常。
Go语言通过内置的错误error接口提供了非常简单的错误处理机制。
error类型是一个接口类型,它的定义如下:error接口定义了一个方法Error(),该方法返回一个字符串描述错误。
在编码中通过实现error接口类型来生成错误信息,通常在最后的返回值中返回错误信息。
使用可返回一个错误信息:err := (出错啦!)。
大部分函数调用都会返回两个值,一个值,一个错误err,可以利用err值判断。
Rust有一套独特的处理异常情况的机制,它不像Python中的try机制那样简单。
对于可恢复错误,可使用Result来处理,不可恢复用panic!,match用于匹配正常或错误情况。
Dart自带异常处理,且异常本身可被传递。
Dart提供异常和错误的类型以及预定义的子类,也可以预定义自己的异常子类,Dart允许抛出任意类型的非空对象作为一个异常。