Files
parr_api/PARR.Domain/Exceptions/CustomExceptions.cs

110 lines
3.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

namespace PARR.Domain.Exceptions
{
/// <summary>
/// Базовый класс для всех ошибок
/// </summary>
public abstract class BaseException : Exception
{
protected BaseException(string message) : base(message) { }
}
/// <summary>
/// Ошибка БД. 502
/// </summary>
public class DbErrorException : BaseException
{
/// <summary>
/// Ошибка БД.
/// </summary>
/// <param name="message"></param>
public DbErrorException(string message) : base(message) { }
}
/// <summary>
/// Объект не найден. 404
/// </summary>
public class NotFoundException : BaseException
{
/// <summary>
/// Объект не найден.
/// </summary>
/// <param name="message"></param>
public NotFoundException(string message) : base(message) { }
}
/// <summary>
/// Ошибка валидации. 400.
/// Использовать эту ошибку, если не подходит валидация от Fluent (ValidationException)
/// </summary>
public class AppValidationException : BaseException
{
/// <summary>
/// Ошибка валидации.
/// </summary>
/// <param name="message"></param>
public AppValidationException(string message) : base(message) { }
}
/// <summary>
/// Объект уже существует. 409
/// </summary>
public class AlreadyExistsException : BaseException
{
/// <summary>
/// Объект уже существует.
/// </summary>
/// <param name="message"></param>
public AlreadyExistsException(string message) : base(message) { }
}
/// <summary>
/// Ошибка при работе с внешним сервисом. 502
/// </summary>
public class ExternalServiceException : BaseException
{
/// <summary>
/// Ошибка при работе с внешним сервисом.
/// </summary>
/// <param name="message"></param>
public ExternalServiceException(string message) : base(message) { }
}
/// <summary>
/// Пользователь не аутентифицирован. 401
/// </summary>
public class UnauthorizedException : BaseException
{
/// <summary>
/// Пользователь не аутентифицирован.
/// </summary>
/// <param name="message"></param>
public UnauthorizedException(string message) : base(message) { }
}
/// <summary>
/// Доступ запрещен. 403.
/// Пользователь вошел в систему (мы знаем, кто он), но у него нет прав на конкретное действие или объект.
/// </summary>
public class ForbiddenException : BaseException
{
/// <summary>
/// Доступ запрещен.
/// </summary>
/// <param name="message"></param>
public ForbiddenException(string message) : base(message) { }
}
/// <summary>
/// Ошибка при расчете NextRun. 422 (запрос валиден, но бизнес логика не смогла нормально его обработать)
/// </summary>
public class NextRunException : BaseException
{
/// <summary>
/// Ошибка при расчете NextRun
/// </summary>
/// <param name="message"></param>
public NextRunException(string message) : base(message){}
}
}