日期:2014-05-18  浏览次数:20942 次

C# 函数中异常捕获的问题????
现在我有一个疑问,函数中的异常捕获问题:假如有这样一个函数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的位置会出现一个提示:检测到无法到达的代码!
像这样的问题,该如何处理其中的异常,使得编译环境也不提示错误,而且能正常编译通过呢?

------解决方案--------------------
上来都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; 



------解决方案--------------------
看看代码吧
return false; 
try 

if(条件判断) 

DoSomething... 
return true; 

else 

DoSomething... 
return false; 


catch(Exception ex) 

MessageBox.Show(ex.Message.ToString()); 
return false; 

什么都没做就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; 



你这啥代码。。刚进函数体就给return false了,下面的代码永远走不到
------解决方案--------------------
HOHO去掉那行return false;
这应该可以通过编译的啊?
C# code

        public bool FunctionA() 
        { 
            try 
            { 
            if(条件判断)