All errors from .NET applications are automatically captured by Atatus. If you wish to report errors manually, you can do either by CaptureError() or CaptureException() method.

Required Imports

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

1. CaptureError

When you don't have an exception instance, you can report an error with this method.

Syntax

Atatus.Agent.Tracer.CaptureError(message, culprit);

Parameter

Parameter Type Description
message String (Required) Error message.
culprit String (Optional) The source of the error, such as a method or class name.

Example

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

Atatus.Agent.Tracer.CaptureError("Unable to make a payment!", "PaymentProcessor");
copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

try
{
    // Your code here
}
catch (Exception ex)
{
    Atatus.Agent.Tracer.CaptureError(ex.Message, "ConfigurationVerifier");
}

2. CaptureException

When you have an exception instance, you can report error with this method. You can capture exceptions on the tracer, transaction, or span level.

Syntax

Option 1: Using Tracer

Atatus.Agent.Tracer.CaptureException(exception);

Option 2: Using Transaction

transaction.CaptureException(exception);

Option 3: Using Span

span.CaptureException(exception);

Parameter

Parameter Type Description
exception Exception Object (Required) Exception instance.

Examples

Capture on Tracer:

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

try
{
    // Your code here
}
catch (Exception ex)
{
    Atatus.Agent.Tracer.CaptureException(ex);
}

Capture on Transaction:

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

var transaction = Atatus.Agent.Tracer.StartTransaction("GET /users", ApiConstants.TypeRequest);

try
{
    // Your code here
}
catch (Exception ex)
{
    transaction.CaptureException(ex);
}
finally
{
    transaction.End();
}

Capture on Span:

copy
icon/buttons/copy
using Atatus;
using Atatus.Api;

var transaction = Atatus.Agent.Tracer.CurrentTransaction;
ISpan span = transaction.StartSpan("CheckSubsystems", ApiConstants.TypeApp, ApiConstants.SubTypeInternal, ApiConstants.ActionExec);

try
{
    // Your code here
}
catch (Exception ex)
{
    span.CaptureException(ex);
}
finally
{
    span.End();
}

See also