C# 函数中异常捕获的问题????

wangleipin 2008-09-09 09:43:57
现在我有一个疑问,函数中的异常捕获问题:假如有这样一个函数FunctionA,返回值为bool类型,那么简单的函数体应该是
public bool FunctionA()
{
if(条件判断)
{
DoSomething...
return true;
}
else
{
DoSomething...
return false;
}
}
那么,如果我需要在这个函数里加入异常捕获,那该如何加呢?
如果写成
public bool FunctionA()
{
return false;
try
{
if(条件判断)
{
DoSomething...
return true;
}
else
{
DoSomething...
return false;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
}
则编译能通过,但在try的位置会出现一个提示:检测到无法到达的代码!
像这样的问题,该如何处理其中的异常,使得编译环境也不提示错误,而且能正常编译通过呢?
...全文
136 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangleipin 2008-09-09
  • 打赏
  • 举报
回复
哦,可能是我的try里面的if语句只用了一半,没有用else的缘故了!像phy说得,我在2005里就不行,呵呵! 谢谢大家,结贴了
hotmail_mk 2008-09-09
  • 打赏
  • 举报
回复
肯定要去掉开头的return false;
xiaohaoyuan 2008-09-09
  • 打赏
  • 举报
回复
可以把return false; 放到最后一行:
public bool FunctionA()
{
try
{
if(条件判断)
{
DoSomething...
return true;
}
else
{
DoSomething...
return false;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
return false;

}

这样逻辑也不会有问题
brallow 2008-09-09
  • 打赏
  • 举报
回复
HOHO去掉那行return false;
这应该可以通过编译的啊?

public bool FunctionA()
{
try
{
if(条件判断)
{
DoSomething...
return true;
}
else
{
DoSomething...
return false;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
}



我这VS2008中编译时,这个通过,一点错误都没有。

public bool FunctionA(bool t)
{
try
{
if (t)
{
//DoSomething...
return true;
}
else
{
//DoSomething...
return false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
}
wangleipin 2008-09-09
  • 打赏
  • 举报
回复
大家来看看我这个问题吧?
wangleipin 2008-09-09
  • 打赏
  • 举报
回复
各位,可是如果刚开始不给返回值,那么编译都通不过啊?
再见品月 2008-09-09
  • 打赏
  • 举报
回复
public bool FunctionA()
{
return false;
try
{
if(条件判断)
{
DoSomething...
return true;
}
else
{
DoSomething...
return false;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
}

你这啥代码。。刚进函数体就给return false了,下面的代码永远走不到
NewUser2008 2008-09-09
  • 打赏
  • 举报
回复
看看代码吧
return false;
try
{
if(条件判断)
{
DoSomething...
return true;
}
else
{
DoSomething...
return false;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
什么都没做就return了
xiaohaoyuan 2008-09-09
  • 打赏
  • 举报
回复
你的try前面放了返回语句,去掉就可以了.
liangchencf 2008-09-09
  • 打赏
  • 举报
回复
上来都return了当然后边的代码无效

public bool FunctionA()
{
//return false;
try
{
if(条件判断)
{
DoSomething...
return true;
}
else
{
DoSomething...
return false;
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return false;
}
}

110,536

社区成员

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

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

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