- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想获取控制台程序的错误输出以防它崩溃。但我希望标准输出显示在控制台窗口中。但是,如果我重定向标准错误,则不会向控制台窗口输出任何内容。
Dim p As New Process
p.StartInfo.Filename = filename
p.StartInfo.UseShellExecute = False
p.StartInfo.RedirectStandardError = True
p.EnableRaisingEvents = True
p.Start
p.BeginReadErrorLine
所以现在如果启动的进程(一个控制台程序)崩溃了,我会得到预期的错误输出。但是,标准输出在控制台程序中是不可见的。
我写了一个测试程序来启动。
static void Main(string[] args)
{
for (int i = 0; i < 1000; i++)
{
Console.WriteLine(i);
}
object m = null;
string s = m.ToString();
}
我希望在控制台窗口中看到数字 0 - 999 滚动并通过重定向获得错误输出,但我在控制台窗口中看不到任何内容,除非没有任何重定向。
我还没有找到任何关于这个问题的问题。这是缺陷还是我忽略了什么?
最佳答案
我试过重现,但我做不到。这是我的代码,我在其中仅重定向错误,但我仍然能够在控制台窗口中看到输出:
public class Program
{
static void Main(string[] args)
{
ExecuteCommand(@"cmd.exe", @"/c C:\Users\*****\Documents\Test\ConsoleApp1.exe");
}
public static int ExecuteCommand(string exePath, string cmdText)
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.FileName = exePath;
startInfo.Arguments = cmdText;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
process.StartInfo = startInfo;
process.Start();
process.BeginErrorReadLine();
process.WaitForExit();
return process.ExitCode;
}
}
这是我的输出:
我做的事情是否与您尝试过的不同?
关于c# - .NET System.Process : when you redirect StandardError, 控制台窗口没有收到任何输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51257335/
为了处理 Rails 异常,我看到人们使用“raise SomeException.new”或“raise SomeException”,有什么区别? 说如果我有课 class UnableToCr
为什么我从 GoodnessOfFit.StandardError 得到错误的答案 (err2)?在下面的代码中,我自己进行计算并得到正确的答案 (err3)。我从 GoodnessOfFit.RSq
首先,在 Xcode 中调试和运行时,一切都按预期工作。 但是当我尝试“共享”我的应用程序时,即进行发布构建时,我的 NSTask 将不会输出任何标准输出,而标准错误会被输出。这怎么可能? 我的代码
我目前正在使用 SST - Web 测试框架开发一个网站(我非常初学者),但我在使用 python 时遇到了问题 我使用了这个链接:https://pypi.python.org/pypi/sst/0
我正在为 Ruby Rails 应用程序编写测试,并且我有一段代码可以捕获我的 Redis 服务器在 Ruby 无法连接到它时抛出的错误。目前,代码如下所示: begin config.bef
我的 Rails 应用程序有一个远程数据库,我可以在其中独立于应用程序创建和存储表,而且它是“无模型的”,我不想或不需要这些表的模型或 ORM。为了访问数据,我使用了一个简单的 ActiveRecor
在我的 gem 中,我有以下模块: module EmeraldComponent def self.create(full_name) raise StandardError('Base
为什么 Ruby 被设计为仅通过 rescue 隐式处理 StandardError 异常?对于其他异常,为什么我们需要用 rescue 显式地放置它们? begin #codes here wh
sania@sania-Swift-SF314-52:~/library$ rake db:migrate == 20180407084831 书籍:迁移 ======================
我想获取控制台程序的错误输出以防它崩溃。但我希望标准输出显示在控制台窗口中。但是,如果我重定向标准错误,则不会向控制台窗口输出任何内容。 Dim p As New Process p.StartInf
当我尝试以编程方式检测我的 PC 上的 java 版本时,我遇到了非常奇怪的行为。我正在使用以下 C# 代码: ProcessStartInfo procStartInfo = new Process
我正在尝试使用自签名 SSL 证书通过 HTTPS 运行 Rails 开发服务器。但是当我使用以下命令启动 Rails 服务器时: rails s -b "ssl://0.0.0.0:8080?key
在 ruby 中, begin # ... rescue # ... end 不会捕获不是 StandardError 子类的异常。在 C 中, rb_rescue(x, Qnil, y, Q
我是一名优秀的程序员,十分优秀!