Environment.FailFast Method
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.
Immediately terminates the process before reporting an error message. For Windows, the error message is written to the Windows Application event log, and the message and optional exception information is included in error reporting to Microsoft. For Unix-like systems, the message, alongside the stack trace, is written to the standard error stream.
FailFast(String) |
Immediately terminates the process before reporting an error message. For Windows, the error message is written to the Windows Application event log, and the message is included in error reporting to Microsoft. For Unix-like systems, the message, alongside the stack trace, is written to the standard error stream. |
FailFast(String, Exception) |
Immediately terminates the process before reporting an error message. For Windows, the error message is written to the Windows Application event log, and the message and exception information is included in error reporting to Microsoft. For Unix-like systems, the message alongside the stack trace is written to the standard error stream. |
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
Immediately terminates the process before reporting an error message. For Windows, the error message is written to the Windows Application event log, and the message is included in error reporting to Microsoft. For Unix-like systems, the message, alongside the stack trace, is written to the standard error stream.
public:
static void FailFast(System::String ^ message);
[System.Security.SecurityCritical]
public static void FailFast (string message);
public static void FailFast (string? message);
public static void FailFast (string message);
[<System.Security.SecurityCritical>]
static member FailFast : string -> unit
static member FailFast : string -> unit
Public Shared Sub FailFast (message As String)
Parameters
- message
- String
A message that explains why the process was terminated, or null
if no explanation is provided.
- Attributes
Examples
The following example writes a log entry to the Windows Application event log when running under Windows, or writes the error message to the standard error stream when running under a Unix-like system, and terminates the current process.
using System;
class Example
{
public static void Main()
{
string causeOfFailure = "A catastrophic failure has occurred.";
// Assume your application has failed catastrophically and must
// terminate immediately. The try-finally block is not executed
// and is included only to demonstrate that instructions within
// try-catch blocks and finalizers are not performed.
try
{
Environment.FailFast(causeOfFailure);
}
finally
{
Console.WriteLine("This finally block will not be executed.");
}
}
}
/*
The example produces no output because the application is terminated.
However, an entry is made in the Windows Application event log, and
the log entry contains the text from the causeOfFailure variable.
*/
open System
let causeOfFailure = "A catastrophic failure has occurred."
// Assume your application has failed catastrophically and must
// terminate immediately. The try-finally block is not executed
// and is included only to demonstrate that instructions within
// try-catch blocks and finalizers are not performed.
try
Environment.FailFast causeOfFailure
finally
printfn "This finally block will not be executed."
// The example produces no output because the application is terminated.
// However, an entry is made in the Windows Application event log, and
// the log entry contains the text from the causeOfFailure variable.
Module Example
Public Sub Main()
Dim causeOfFailure As String = "A catastrophic failure has occurred."
' Assume your application has failed catastrophically and must
' terminate immediately. The try-finally block is not executed
' and is included only to demonstrate that instructions within
' try-catch blocks and finalizers are not performed.
Try
Environment.FailFast(causeOfFailure)
Finally
Console.WriteLine("This finally block will not be executed.")
End Try
End Sub
End Module
'
' The code example displays no output because the application is
' terminated. However, an entry is made in the Windows Application event
' log, and the log entry contains the text from the causeOfFailure variable.
Remarks
This method terminates a process without running any active try
/finally
blocks or finalizers.
On Windows, the Environment.FailFast
method writes the message
string to the Windows Application event log, creates a dump of your application, and then terminates the current process. The message
string is also included in error reporting to Microsoft via Windows Error Reporting. For more information, see Windows Error Reporting: Getting Started.
On Unix-like systems, the message is written to the standard error stream, alongside the stack trace information.
Use the Environment.FailFast
method instead of the Exit method to terminate your application if the state of your application is damaged beyond repair, and executing your application's try
/finally
blocks and finalizers will corrupt program resources.
Calling the Environment.FailFast
method to terminate execution of an application running in the Visual Studio debugger throws an ExecutionEngineException and automatically triggers the fatalExecutionEngineError managed debugging assistant (MDA).
Applies to
.NET 9 and other versions
Product | Versions |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Source:
- Environment.cs
- Source:
- Environment.cs
- Source:
- Environment.cs
Immediately terminates the process before reporting an error message. For Windows, the error message is written to the Windows Application event log, and the message and exception information is included in error reporting to Microsoft. For Unix-like systems, the message alongside the stack trace is written to the standard error stream.
public:
static void FailFast(System::String ^ message, Exception ^ exception);
[System.Security.SecurityCritical]
public static void FailFast (string message, Exception exception);
public static void FailFast (string? message, Exception? exception);
public static void FailFast (string message, Exception exception);
[<System.Security.SecurityCritical>]
static member FailFast : string * Exception -> unit
static member FailFast : string * Exception -> unit
Public Shared Sub FailFast (message As String, exception As Exception)
Parameters
- message
- String
A message that explains why the process was terminated, or null
if no explanation is provided.
- exception
- Exception
An exception that represents the error that caused the termination. This is typically the exception in a catch
block.
- Attributes
Remarks
This method terminates the process without running any active try
/finally
blocks or finalizers.
On Windows, the Environment.FailFast
method writes the message
string to the Windows Application event log, creates a dump of your application, and then terminates the current process.
Information is reported to Microsoft by using Windows Error Reporting. For more information, see Windows Error Reporting: Getting Started. Error reporting to Microsoft includes message
and exception
information, which provides details used to classify the error. Although exception
is not handled because the process is terminated, the contextual information that raised the exception is still obtained.
On Unix-like systems, the message is written to the standard error stream, alongside the stack trace information.
If exception
is null
, or if exception
is not thrown, this method operates the same as the FailFast(String) method overload.
Use the Environment.FailFast
method instead of the Exit method to terminate your application if the state of your application is damaged beyond repair, and executing your application's try
/finally
blocks and finalizers will corrupt program resources.
Calling the Environment.FailFast
method to terminate execution of an application running in the Visual Studio debugger throws an ExecutionEngineException and automatically triggers the fatalExecutionEngineError managed debugging assistant (MDA).
Applies to
.NET 9 and other versions
Product | Versions |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 |
UWP | 10.0 |
.NET feedback
.NET is an open source project. Select a link to provide feedback: