同样一个函数,有异常他的能返回错误,而我写的只能跑到catch

那该多好啊!!! 2023-05-17 19:08:28

 try
            {
                //轴卡初始化部分
                sRtn = mc.GTN_Open(2, 1);
                if (sRtn != 0)
                    throw new Exception("GTN_Open" + sRtn.ToString());
              ......................................................
            }
            catch (Exception ex)
            {

                MessageBox.Show("里面子函数抛出的异常" + ex);
            }

   当执行到 sRtn = mc.GTN_Open(2, 1);这个函数有异常的时候,别人写的代码这个异常能返回出来给sRtn一个值,然后交给throw new Exception。。

而我写的,执行到这 sRtn = mc.GTN_Open(2, 1);这个函数有异常的时候就直接跑到catch下面了。这是为什么?看了他的代码好像和我写的一样,

...全文
210 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2023-06-08
  • 打赏
  • 举报
回复

两个可能,
1 他做了全局异常捕获,但是这个可能性比较小。
因为全局的异常捕获,不太好单独设置 sRtn=1
2 finally 是不是存在。

bbjiabcd 2023-06-05
  • 打赏
  • 举报
回复
            catch (Exception ex)
            {
                MessageBox.Show("里面子函数抛出的异常" + ex.Message);
            }
mierxx_ 2023-06-03
  • 打赏
  • 举报
回复

别人能返回1,是因为他在函数里用try catch处理了捕获的异常,而你的没有,所以才会直接抛出异常。

大然然 2023-05-18
  • 打赏
  • 举报
回复

盲猜别人写的mc.GTN_Open里有try catch 所以异常后返回了值, 你写的mc.GTN_Open里没有try catch 所以直接被下面的catch捕获到了

  • 举报
回复
@大然然 都写了try catch来捕捉,但是同样一个函数,别人调用时那个函数有异常能反回一个1,而我调用只能catch捕捉
赵4老师 2023-05-18
  • 打赏
  • 举报
回复

因为mc.GTN_Open(2, 1)内部已经抛异常了

  • 举报
回复
@赵4老师 但是别人调的时候能返回异常的值 ,我调的时候却只能被try,catch捕捉,不能返回异常值,
  • 打赏
  • 举报
回复

mc.GTN_Open(2, 1);是调用固高运动控制 板卡初始化的函数,已经引用了这个库并且dll放在debug目录里了。

110,580

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧