c語言trycatch
① 關於c語言中的try語句
C語言是沒有try語句的,還有,你這個地方也就算是一個函數(在C語言裡面你寫的這個try只能是函數)
有語法錯誤,幫你改了,你自己再看看
#include<stdio.h>
void try(int,int,int);
int main()
{
int x=2,y=3,z=0; //y=3
printf("(1)x=%d y=%d z=%d\n",x,y,z);
try(x,y,z);
printf("(4)x=%d y=%d z=%d\n",x,y,z);
}
void try(int x,int y,int z)
{
printf("(2)x=%d y=%d z=%d\n",x,y,z);
z=x+y;
x=x*x;
y=y*y;
printf("(3)x=%d y=%d z=%d\n",x,y,z);
}
一點補充:最開始我運行你這個程序是在一個.cpp文件裡面寫的代碼,然後運行,但是程序會報錯,為什麼呢?因為cpp一般而言是C++的文件,C++裡面有try語句,try是他的一個關鍵字,所以函數名不能是關鍵字,程序報錯了。
但是在一個.c文件裡面是沒有問題的~~
還有,你這個真心是一個函數,不是try語句,try語句是
try
{
do something
}
catch(some error)
{
do something
}
② C語言如何用throw在程序中拋出異常 try-catch又怎麼用
不是 catch只是為了捕獲到異常而進行處理 如果你不需要處理異常的話 就不用try-catch了 直接throw就可以了 或者是你覺得可能會有異常 但是這異常是由於程序解決不了的 不如資料庫鏈接不上了 那你就throw異常 然後輸出異常就可以了 !
③ c++中 try 和catch的用法
1、在c++中,可以直接拋出異常之後自己進行捕捉處理,如:(這樣就可以在任何自己得到不想要的結果的時候進行中斷,比如在進行資料庫事務操作的時候,如果某一個語句返回SQL_ERROR則直接拋出異常,在catch塊中進行事務回滾,用法:
#include <iostream> #include <exception>
using namespace std;
int main () {
try
{
throw 1;
throw "error";
}
catch(char *str)
{
cout << str << endl;
}
catch(int i)
{
cout << i << endl;
}
}
2、try 和catch定義異常類來進行處理:
#include <iostream> #include <exception>
using namespace std;
//可以自己定義Exception class myexception: public exception
{
virtual const char* what() const throw()
{
return "My exception happened";
}
}myex;
int main () {
try
{
if(true) //如果,則拋出異常;
throw myex;
}
catch (exception& e)
{
cout << e.what() << endl;
}
return 0;
}
(3)c語言trycatch擴展閱讀
c++的特點:
1、C++通過建立用戶定義類支持數據封裝和數據隱藏。
2、C++是支持數據封裝的工具,對象則是數據封裝的實現。
3、採用多態性為每個類指定表現行為。多態性形成由父類和它們的子類組成的一個樹型結構。
4、C++現有類的基礎上可以聲明新類型,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程序結構,明確類間關系,並且充分利用已有的類來完成更復雜、深入的開發。新定義的類為子類,成為派生類。
④ 想問一下try catch 是不是C語言的語法還是僅在C++之後才引入的機制
c++的異常機制,c語言沒有
但實際在c++中基本不使用,因為影響編譯器生成的代碼的效率,使用異常機制的代碼編譯器很難去進行優化的。
⑤ c語言里try是什麼意思
C語言里try是一個語句或函數。其作用是是拋出錯誤用。
將有可能產生錯誤的語句括在一起,放入try語句塊。如果在try語句塊中發生異常,FlashPlayer會創建一個錯誤對象,並將該Error對象派發至第一個可用的catch塊。catch語句塊提供對錯誤的處理。如果沒有try語句,或者try語句沒有出現錯誤,則catch語句不會被引發。如果在try語句塊的其中某個語句中檢測到錯誤,則會執行附加到該try語句的catch語句。catch語句可以並列使用,即在一個try語句塊之後,存在多個catch語句塊,以處理不同的錯誤對象。
try語句是:
try
{
do
something
}
catch(some
error)
{
do
something
}
⑥ 如何捕捉在C語言中的整數除零例外
C語言並沒有try catch 這個是C++的
所以對於C語言 無法捕捉 只能在程序中避免
如果除數有可能為0,那麼在做除法或者模除%時,判斷一下除數
如果是0,則報錯
⑦ C語言里try是什麼意思
C語言里try是一個語句或函數。其作用是是拋出錯誤用。
將有可能產生錯誤的語句括在一起,放入try語句塊。如果在try語句塊中發生異常,FlashPlayer會創建一個錯誤對象,並將該Error對象派發至第一個可用的catch塊。catch語句塊提供對錯誤的處理。如果沒有try語句,或者try語句沒有出現錯誤,則catch語句不會被引發。如果在try語句塊的其中某個語句中檢測到錯誤,則會執行附加到該try語句的catch語句。catch語句可以並列使用,即在一個try語句塊之後,存在多個catch語句塊,以處理不同的錯誤對象。
try語句是:
try
{
do something
}
catch(some error)
{
do something
}
⑧ c++中try後一定要跟catch嗎
Unix(包括Linux)下的C語言編程中是不會使用try catch的,的確C也沒有這個語法。然而當運行時的錯誤異常被拋出時,系統會產生信號發送給進程,如果進程沒有做信號響應函數的話,就會被中斷運行並且產生core文件,通過core文件可以查看程序的崩潰原因、當時的調用堆棧、當時的變數值等等信息,當然這是另外一個話題。
因此在Unix下,與try catch起到相似作用的東西就是信號相應函數。相關的使用方法大體包括如下內容:
1、信號安裝
signal();
sigaction();
2、發送信號函數
int raise(int sig);
int pause(void);
int kill(pid_t pid,int sig);
unsigned int alarm(unsigned int seconds);
int sigqueue(pid_t pid,int sig,const union sigval val);
int setitimer(int which,const struct itimerval *value,struct itimerval *oldvalue);
void abort(void)
3、信號集及信號集操作
sigfillset(sigset_t *set);
sigemptyset(sigset_t *set);
sigaddset(sigset_t *set,int sig);
sigdelset(sigset_t *set,int sig);
4、阻塞信號相關函數
int sigprocmask(int how,const sigset_t *set,sigset_t *set);
int sigpending(sigset_t *set);
int sigsuspend(const sigset_t *set);
具體使用方法可參考相應文檔
⑨ c語言退出一個函數除了用return 還有什麼方法
沒有了
類似的只有函數自然結束的最後一個},也表示函數退出
再么強制中止程序的exit(0);偶爾會用它來做錯誤處理,結束程序。
⑩ 用C語言實現try {}catch 利用宏定義,longjmp,setjmp實現類似try{}catch的異常處理
不容易解釋清楚,建議你參考《C標准庫》這本書,網上有下載,裡面有longjmp,setjmp使用方法的描述,很詳細。