在Catch /try语句中捕获所有STDOUT/STDERR
本文关键字:STDOUT STDERR Catch try 语句 | 更新日期: 2023-09-27 18:05:16
在c#中,我有一个函数显示STDERR
上的错误。我想捕获在父catch/try
STDERR
的所有内容bool status = true;
Console.WriteLine("Action status: ");
try {
talkative_function();
} catch {
Console.WriteLine("Error");
status = false;
}
if (status) Console.WriteLine("Ok");
我当前的输出是:
Action status:...System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it 127.0.0.1:1234
at System.Net.Sockets.TcpClient.Connect(String hostname, Int32 port)
at MyProject.MyClass.MyMethod() Error
需要的输出是:
Action status: Error
如何实现?
您可以使用以下
Console.SetError(TextWriter.Null);
bool status = true;
Console.Write("Action status: ");
try {
talkative_function();
} catch {
Console.WriteLine("Error");
status = false;
}
if (status) Console.WriteLine("Ok");
请注意,我还将Console.WriteLine("Action status: ");
更改为Console.Write("Action status: ");
,因此消息显示在一行中,因为您需要