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;
这应该可以通过编译的啊?
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;
}
这样逻辑也不会有问题