在以下情况下,为什么MS C#编译器会提示“并非所有代码路径都返回一个值”?
public int Foo(bool flag)
{
if(flag)
{
return 1;
}
else
{
ThrowException(); // this method always throws an exception
// return -1; // why do I need to add this code that will never be called?
}
}
谢谢!
最佳答案
不能猜测ThrowException()是总是抛出异常的方法。为此,您需要静态代码分析。
我相信VS 2010中提供了静态代码分析功能,但仅适用于更昂贵的VS版本。
关于c# - C#编译器有缺陷吗? : Not detecting methods that always throw exceptions,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3483439/