Saga Documentation 0.9.434-4

Results and Errors

Table of Contents

Result<T>

The Result type is meant to provide more safety to fallible asynchronous operations. All asynchronous operations in the Saga Unity plugin return either Result or Result<T> wrapping type T.

Result comes with two guarantees:

If Result.IsSuccess == true, then Result.Data != null.

If Result.IsSuccess == false, then Result.Error != null.

The goal of this type is to remind the developer to check and make sure that the operation succeeded in a graceful manner, without requiring a clunky try/catch statement.

Error Handling

Result.IsSuccess should always be handled before accessing Result.Data. In the event of an error, the Result.Error object may contain both Result.Error.StatusCode and Result.Error.Message. The StatusCode can be compared to the SagaResponseCode enum:

if (result.Error.StatusCode == (int) SagaResponseCode.Unauthorized) {
    ... do something ...
}