Console.OpenStandardError Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Acquiert le flux d'erreur standard.
Surcharges
OpenStandardError() |
Acquiert le flux d'erreur standard. |
OpenStandardError(Int32) |
Acquiert le flux d'erreur standard, défini sur une taille de mémoire tampon spécifiée. |
OpenStandardError()
Acquiert le flux d'erreur standard.
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
Retours
Flux d'erreur standard.
Exemples
L’exemple suivant est une visionneuse de fichier texte simple qui affiche le contenu d’un ou plusieurs fichiers texte sur la console. S’il n’y a pas d’arguments de ligne de commande, ou si des fichiers passés comme arguments de ligne de commande n’existent pas, l’exemple appelle la SetError méthode pour rediriger les informations d’erreur vers un fichier, appelle la OpenStandardError méthode dans le processus de réacquisition du flux d’erreur standard et indique que les informations d’erreur ont été écrites dans un fichier.
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.
Notez que la StreamWriter.AutoFlush propriété a la valeur true
avant de réacquérir le flux d’erreurs. Cela permet de s’assurer que la sortie est envoyée à la console immédiatement au lieu de la mise en mémoire tampon.
Remarques
Cette méthode peut être utilisée pour récupérer le flux d’erreurs standard après qu’il a été modifié par la SetError méthode.
Voir aussi
S’applique à
OpenStandardError(Int32)
Acquiert le flux d'erreur standard, défini sur une taille de mémoire tampon spécifiée.
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
Paramètres
- bufferSize
- Int32
Ce paramètre n’a aucun effet, mais sa valeur doit être supérieure ou égale à zéro.
Retours
Flux d'erreur standard.
Exceptions
bufferSize
est inférieur ou égal à zéro.
Remarques
Cette méthode peut être utilisée pour récupérer le flux d’erreurs standard après qu’il a été modifié par la SetError méthode.