Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

Console.OpenStandardError Method

Definition

Namespace:
System
Assemblies:
netstandard.dll, System.Console.dll
Assembly:
System.Console.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Acquires the standard error stream.

Overloads

Name Description
OpenStandardError()

Acquires the standard error stream.

OpenStandardError(Int32)

Acquires the standard error stream, which is set to a specified buffer size.

OpenStandardError()

Source:
Console.cs
Source:
Console.cs
Source:
Console.cs
Source:
Console.cs
Source:
Console.cs

Acquires the standard error stream.

public:
 static System::IO::Stream ^ OpenStandardError();
public static System.IO.Stream OpenStandardError();
static member OpenStandardError : unit -> System.IO.Stream
Public Shared Function OpenStandardError () As Stream

Returns

The standard error stream.

Examples

The following example is a simple text file viewer that displays the contents of one or more text files to the console. If there are no command line arguments, or if any files passed as command line arguments do not exist, the example calls the SetError method to redirect error information to a file, calls the OpenStandardError method in the process of reacquiring the standard error stream, and indicates that error information was written to a file.

using System;
using System.IO;

public class ViewTextFile
{
 public static void Main()
 {
 String[] args = Environment.GetCommandLineArgs();
 String errorOutput = "";
 // Make sure that there is at least one command line argument.
 if (args.Length <= 1)
 errorOutput += "You must include a filename on the command line.\n";

 for (int ctr = 1; ctr <= args.GetUpperBound(0); ctr++) {
 // Check whether the file exists.
 if (!File.Exists(args[ctr])) {
 errorOutput += String.Format("'{0}' does not exist.\n", args[ctr]);
 }
 else {
 // Display the contents of the file.
 StreamReader sr = new StreamReader(args[ctr]);
 String contents = sr.ReadToEnd();
 sr.Close();
 Console.WriteLine("*****Contents of file '{0}':\n\n",
 args[ctr]);
 Console.WriteLine(contents);
 Console.WriteLine("*****\n");
 }
 }

 // Check for error conditions.
 if (!String.IsNullOrEmpty(errorOutput)) {
 // Write error information to a file.
 Console.SetError(new StreamWriter(@".\ViewTextFile.Err.txt"));
 Console.Error.WriteLine(errorOutput);
 Console.Error.Close();
 // Reacquire the standard error stream.
 var standardError = new StreamWriter(Console.OpenStandardError());
 standardError.AutoFlush = true;
 Console.SetError(standardError);
 Console.Error.WriteLine("\nError information written to ViewTextFile.Err.txt");
 }
 }
}
// If the example is compiled and run with the following command line:
// ViewTextFile file1.txt file2.txt
// and neither file1.txt nor file2.txt exist, it displays the
// following output:
// Error information written to ViewTextFile.Err.txt
// and writes the following text to ViewTextFile.Err.txt:
// 'file1.txt' does not exist.
// 'file2.txt' does not exist.
open System
open System.IO

let args = Environment.GetCommandLineArgs()[1..]
let mutable errorOutput = ""
// Make sure that there is at least one command line argument.
if args.Length < 1 then
 errorOutput <- errorOutput + "You must include a filename on the command line.\n"

for file in args do
 // Check whether the file exists.
 if File.Exists file then
 errorOutput <- errorOutput + $"'{file}' does not exist.\n"
 else
 // Display the contents of the file.
 use sr = new StreamReader(file)
 let contents = sr.ReadToEnd()
 Console.WriteLine $"*****Contents of file '{file}':\n\n"
 Console.WriteLine contents
 Console.WriteLine "*****\n"

// Check for error conditions.
if not (String.IsNullOrEmpty errorOutput) then
 // Write error information to a file.
 Console.SetError(new StreamWriter(@".\ViewTextFile.Err.txt"))
 Console.Error.WriteLine errorOutput
 Console.Error.Close()
 // Reacquire the standard error stream.
 use standardError = new StreamWriter(Console.OpenStandardError())
 standardError.AutoFlush <- true
 Console.SetError standardError
 Console.Error.WriteLine "\nError information written to ViewTextFile.Err.txt"

// If the example is compiled and run with the following command line:
// ViewTextFile file1.txt file2.txt
// and neither file1.txt nor file2.txt exist, it displays the
// following output:
// Error information written to ViewTextFile.Err.txt
// and writes the following text to ViewTextFile.Err.txt:
// 'file1.txt' does not exist.
// 'file2.txt' does not exist.
Imports System.IO

Module ViewTextFile
 Public Sub Main()
 Dim args() As String = Environment.GetCommandLineArgs()
 Dim errorOutput As String = ""
 ' Make sure that there is at least one command line argument.
 If args.Length <= 1 Then
 errorOutput += "You must include a filename on the command line." +
 vbCrLf
 End If
 
 For ctr As Integer = 1 To args.GetUpperBound(0)
 ' Check whether the file exists.
 If Not File.Exists(args(ctr)) Then
 errorOutput += String.Format("'{0}' does not exist.{1}",
 args(ctr), vbCrLf)
 Else
 ' Display the contents of the file.
 Dim sr As New StreamReader(args(ctr))
 Dim contents As String = sr.ReadToEnd()
 sr.Close()
 Console.WriteLine("***** Contents of file '{0}':{1}{1}",
 args(ctr), vbCrLf)
 Console.WriteLine(contents)
 Console.WriteLine("*****{0}", vbCrLf)
 End If
 Next

 ' Check for error conditions.
 If Not String.IsNullOrEmpty(errorOutput) Then
 ' Write error information to a file.
 Console.SetError(New StreamWriter(".\ViewTextFile.Err.txt"))
 Console.Error.WriteLine(errorOutput)
 Console.Error.Close()
 ' Reacquire the standard error stream.
 Dim standardError As New StreamWriter(Console.OpenStandardError())
 standardError.AutoFlush = True
 Console.SetError(standardError)
 Console.Error.WriteLine("{0}Error information written to ViewTextFile.Err.txt",
 vbCrLf)
 End If
 End Sub
End Module
' If the example is compiled and run with the following command line:
' ViewTextFile file1.txt file2.txt
' and neither file1.txt nor file2.txt exist, it displays the
' following output:
' Error information written to ViewTextFile.Err.txt
' and writes the following text to ViewTextFile.Err.txt:
' 'file1.txt' does not exist.
' 'file2.txt' does not exist.

Note that the StreamWriter.AutoFlush property is set to true before reacquiring the error stream. This ensures that output will be sent to the console immediately rather than buffered.

Remarks

This method can be used to reacquire the standard error stream after it has been changed by the SetError method.

See also

Applies to

OpenStandardError(Int32)

Source:
Console.cs
Source:
Console.cs
Source:
Console.cs
Source:
Console.cs
Source:
Console.cs

Acquires the standard error stream, which is set to a specified buffer size.

public:
 static System::IO::Stream ^ OpenStandardError(int bufferSize);
public static System.IO.Stream OpenStandardError(int bufferSize);
static member OpenStandardError : int -> System.IO.Stream
Public Shared Function OpenStandardError (bufferSize As Integer) As Stream

Parameters

bufferSize
Int32

This parameter has no effect, but its value must be greater than or equal to zero.

Returns

The standard error stream.

Exceptions

bufferSize is less than or equal to zero.

Remarks

This method can be used to reacquire the standard error stream after it has been changed by the SetError method.

See also

Applies to


Feedback

Was this page helpful?