首页 / C# / c# – 控制台应用程序打印“失败:”
c# – 控制台应用程序打印“失败:”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 控制台应用程序打印“失败:”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1687字,纯文字阅读大概需要3分钟。
内容图文
![c# – 控制台应用程序打印“失败:”](/upload/InfoBanner/zyjiaocheng/777/65f782c5925e4d18bc759d88620f0169.jpg)
我有一个控制台应用程序,它读取一些数据,将其填充到类似字典的结构中,操纵它然后制作一些输出文件.
但是,在打印输出时,它有时会打印:
Fail:
它真的不应该在哪里.我在Google上找不到任何东西(搜索的内容并不多),当我在我的解决方案中搜索字符串“fail”时,我找不到任何东西(所以这不是我的代码所做的).
我不知道为什么会发生这种情况,相关的块通常会产生异常,但是我抓住它们,当我使用Console.WriteLine而不是Trace.WriteLine时,它工作正常,但我无法轻易验证这是原因.
我不知道如何解决这个问题.
什么可能导致失败:被打印到控制台?
我如何设置一个断点来阻止它呢?
我甚至在哪里开始想要解决这个问题?
解决方法:
感谢Adriano的熟练预感,我能够怀疑断言是罪魁祸首.
实际上,在打印神秘的Fail:消息时运行的代码块确实调用了这样的断言:
Debug.Assert(myString.Length > 0);
显然,“失败:”应理解为“断言失败”.我可以通过将其更改为:
Debug.Assert(myString.Length > 0, "Assertion failed with myString == \"" + myString + "\".");
这改变了Fail:消息失败:断言失败,myString ==“”并消除了混乱,并让我处理了进一步调试的问题(因为我知道断言是生成失败消息的确切行).
事实证明,在调试模式下,Visual Studio不会中断断言失败,而是简单地将失败消息打印到输出(启用中断会在here中讨论).就我而言,我一直在使用跟踪侦听器,以便我的程序输出将打印到文件和控制台.为此,我使用了以下初始化代码:
private static void PrepareListeners()
{
Trace.Listeners.Clear();
var logPath = "/path/to/my/file.txt";
File.Delete(logPath);
var textListener = new TextWriterTraceListener(logPath);
var consoleListener = new ConsoleTraceListener(false);
consoleListener.TraceOutputOptions = TraceOptions.DateTime;
Trace.Listeners.Add(textListener);
Trace.Listeners.Add(consoleListener);
Trace.AutoFlush = true;
}
然后我用Trace.WriteLine生成输出.似乎跟踪侦听器也在接收断言失败消息. (它们显示在我的日志文件和控制台中.)
内容总结
以上是互联网集市为您收集整理的c# – 控制台应用程序打印“失败:”全部内容,希望文章能够帮你解决c# – 控制台应用程序打印“失败:”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。