神奇的问题啊 ,求大神看一下 咋回事C#

bool abc = false;
if (abc)
{
throw new Exception("maindata not found.");
}
try
{

        }
        catch (IOException IOEx)
        {
            throw IOEx;
        }
        catch (Exception ex)
        {
            throw ex;
        }

无论abc 是false 还是 true 他都会进 if 语句里面 。。。。 如果我把我if语句放到try 里面 这个问题就消失了。 但是只有我,然后我把语句放到别人的电脑上测试,if放到外面false是不进去的。 是正常的,请问这是我机器哪里造成的呢。。 重装一下可能就好,但是 我想能明白怎么回事!