Console.Writeline停止我的程序...... C#

时间:2012-09-11 05:54:39

标签: c# console

我在Windows Froms C#应用程序中遇到了最棘手的问题

我的代码中有一些Console.WriteLine用于调试,但突然间它停止了工作。例如

try{
   line(of.code);
   Console.WriteLine("HERE");
   other.line(of.code);
}
catch (Exception e)
{
   logger.logg(e.ToString());
}

我不会进入other.line(of.code);行,而且我没有在控制台中找到“HERE”。

代码中有一些地方,所有这些地方都会发生同样的情况。它只是停止,它没有到达捕获......

最糟糕的是,它早先工作了。我已经在应用程序上工作了很长时间,从未见过类似的东西。

2 个答案:

答案 0 :(得分:4)

如果您只需要调试,请尝试

System.Diagnostics.Debug.Writeline("HERE");

代替。

这会将输出写入开发环境的输出窗口,更重要的是,无论您正在开发的应用程序类型如何(控制台应用程序,获胜表单,Web应用程序等),它都将起作用。

一旦更改为“release”,调试信息将被忽略,不会编译到代码中。如果你也需要它,你应该尝试使用Trace.Writeline。

答案 1 :(得分:3)

我可以想到一些会导致Console.WriteLine失败的场景:

  1. 输出流已设置为无效对象或行为异常(在您的情况下停止程序)。

  2. 您所在的环境中未授予您使用控制台*的权限。

  3. 它不是System.Console.WriteLine,而是由于一些using指令而被调用的另一个同名方法。

  4. *:我想不出这样的环境,但可能是一些插件系统?

    如果您正在制作Windows Froms应用程序而不是为控制台设置输出流,那么Console.WriteLine应该什么都不做。因此,如果您需要调试,请关注Matt's recomendation