当前位置:  技术问答>linux和unix

关于错误跳转的问题

    来源: 互联网  发布时间:2015-06-03

    本文导语:  在处理错误的时候遇到了一个跳转的问题: void dealerror(char * errorinfo) {    .... } void main() {    ...    function1();    function2();    ... } 在function1 和 function2 中 我都有调用dealerror函数对错误的进行判断处理 不...

在处理错误的时候遇到了一个跳转的问题:

void dealerror(char * errorinfo)
{
   ....
}

void main()
{
   ...
   function1();
   function2();
   ...
}

在function1 和 function2 中 我都有调用dealerror函数对错误的进行判断处理 不过我不知道 那个dealerror应该怎跳转才能使function1 出错时显示了错误信息后继续执行 function2, function2 出错时继续执行下面的代码. 原来我是用exit(0)的不过发现一dealerror 后就跳出了. dealerror函数应该怎么写才能进行合理的跳转呢? 谢谢各位大侠了...

|
use "break"
replace "void dealerror()" to "int dealerror()"
define various error code bye various return code of dealerror()

u can judge the return code of dealerror() to use "break" or "return" in a while routine

|
虽然使用setjmp有一些晦涩之处,但是纯错误处理的话,应该可以应用。注意当涉及到信号处理时,你需要想想先了。
jmp_buf jmpbuf;
void dealerror(char * errorinfo)
{
   ....
   longjmp(&jmpbuf, 1);
}

void main()
{
   ...
   //如果function1中出错,那么longjmp会返回到if这个地方,但是由于返回值是1,所以跳过function1,而继续往下
   if(setjmp(&jmpbuf) == 0) 
         function1();

   if(setjmp(&jmpbuf) == 0)
         function2();
   ...
}
不知道这是不是你想要的,呵呵

|
就像icedust(冰封尘想)那样,用return -yourself errorno.在调用时处理返回值就行了。
或者你如果有需要可以使用setjmp.h,like this
#include 

static jmp_buf env_buf;
…………
if (setjmp(env_buf)==0)
{
    function()
    …………
}
…………
dealerror()中用longjmp(env_buf,1)跳回去。(慎用)

|
?? 可能不太了解楼主的意思,不过只是要跳出的话 你在f1和f2里发现出错就立刻
return dealerror();不就可以了?

|
exit(0);
>>
return;

|
奇怪的问题。。。
用break、continue、return、goto等等等等都可以做跳转。

涉及信号时用的时sigsetjmp、siglongjmp。

    
 
 

您可能感兴趣的文章:

  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • QT"段错误"问题
  • [scjp问题] 关于静态方法中间的变量调用错误问题
  • TOMCAT启动错误问题,请教!
  • php显示错误问题
  • Linux下调用.so引发的段错误问题
  • 关于编译的问题:这是什么错误
  • 问个弱弱的问题错误卸载硬盘根目录怎么办/dev/sda1
  • 我的sprintf有错误,不知道什么问题。
  • [求教]:NFS的连接问题.做NFS时报连接错误,据称是portmap问题,但...
  • LINUX C编程错误的一个问题
  • 奇怪的fopen问题,创建不了文件,错误号却返回0
  • SQL Server"错误 21002: [SQL-DMO]用户 * 已经存在问题解决
  • 关于硬盘错误的问题
  • 连续创建和关闭1024个socket就会出现问题,错误码24,怎么办?
  • 有关cvs的问题:总是提示 no such repository 这个错误!!!
  • 给错误设备发送正确命令 -- ioctl问题
  • Java的SQL语句执行错误问题
  • 由于扩展配置问题而无法提供您请求的页面错误解决方法
  • 碰到MySQL无法启动1067错误问题解决方法
  • 如此简单的问题,为什么总有错误?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 bad():如果出现错误则返回true
  • Unmounting initrd failed 错误表示什么错误?可能是由什么引起的?系统原来一直运行正常,突然发现系统登陆错误,重启提示以上错误。
  • C++ I/O 成员 fail():如果出现错误则返回true
  • 在inter版solaris 8上编socket程序,在read时遇到错误,错误号14,用strerror()看不到错误描述,请解决,多谢!
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 请问段错误是什么错误啊
  • Mysql查询错误:ERROR:no query specified原因
  • linux安装codeblock 编译错误make: *** [all-recursive] 错误 1
  • windows server2008上PowerBuilder程序系统错误解决方法
  • 求教:文件打包移植错误发生排序错误,小弟努力送分送分啦!59~~~
  • 几个windows平台C++开发错误举例
  • 解决服务器应用程序不可用,错误:0x80070005拒绝访问的错误
  • 安装hadoop时出现内存不够及其它一些常见的hadoop错误解决办法
  • iis8.5显示ASP的详细错误信息500 内部服务器错误解决方法
  • PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
  • http错误404-文件或目录未找到 错误的解决方法
  • linux/centos安装nginx常见错误及解决办法
  • mysql启动错误之mysql启动报1067错误解决方法
  • gnu c++如何得到对于编译错误和运行错误的帮助?
  • 紧急求救:在LINUX下如何根据错误代码,查出对应的错误描述?
  • jsp有没有检查语法错误的东西,难道只能在改完了在服务器上运行然后才能找到错误吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3