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使用方法的描述,很详细。