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

110 lines
3.6 KiB
C#
Raw Normal View History

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){}
}
}