Exceptions

The Slothful CRUD library provides a robust mechanism for handling exceptions through the implementation of the IExceptionHandler interface. This allows you to customize the way exceptions are handled and ensure that meaningful error information is returned to the client.

Exception Handling Interface

To customize exception handling, you need to implement the IExceptionHandler interface:

public interface IExceptionHandler
{
    SlothProblemDetails HandleError(Exception exception);
}

SlothProblemDetails

The SlothProblemDetails class extends the standard ProblemDetails class to include additional properties for more detailed error reporting:

public class SlothProblemDetails : ProblemDetails
{
    public Guid ProblemId { get; set; }
    public string Code { get; set; }
}

Additional Fields

  • ProblemId: A unique identifier for the problem instance. This helps in tracking and correlating errors, especially in distributed systems or when logging errors for further analysis.
  • Code: A specific error code that categorizes the type of error. This can be used to programmatically handle different types of errors and provide more granular error information to the client.

How It Works

When an exception occurs, the IExceptionHandler implementation processes the exception and returns a SlothProblemDetails object. This object contains detailed information about the error, including a unique problem ID, an error code, and a human-readable message.

For a general overview of problem handling, refer to the Problem Handling section.

Importance of Custom Exception Handling

Customizing exception handling allows you to:

  • Provide Detailed Error Information: Return meaningful error messages to the client, making it easier to diagnose and resolve issues.
  • Maintain Consistency: Ensure that all exceptions are handled uniformly across your application.
  • Enhance Security: Hide sensitive information from error messages that are exposed to clients.

By implementing the IExceptionHandler interface, you can tailor the exception handling behavior of your Slothful CRUD application to meet your specific needs. This flexibility ensures that your application can handle errors gracefully and provide useful feedback to clients.