读书人

C# 函数中错误捕获的有关问题?

发布时间: 2012-01-09 21:05:42 作者: rapoo

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(条件判断)             {                 DoSomething...                 return true;             }             else             {                 DoSomething...                 return false;             }             }             catch(Exception ex)             {                 MessageBox.Show(ex.Message.ToString());                 return false;             }         } 


[解决办法]
可以把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;

}

这样逻辑也不会有问题

读书人网 >C#

热点推荐