namespace HyperBooru; public class HBException : Exception { public HBException() : base() {} public HBException(string message) : base(message) {} public HBException(string message, Exception inner) : base(message, inner) {} } public class ObjectNotFoundException : HBException { public Guid Guid { get; set; } public ObjectNotFoundException(Guid guid) : base($"Object not found: {guid}") {} } public class MediaException : HBException { public Media? Media { get; set; } public MediaException(string message) : base(message) {} public MediaException(string message, Media media) : base(message) => Media = media; } public class MediaCreateException : MediaException { public MediaCreateException(string message) : base(message) {} } public class ThumbnailException : MediaException { public ThumbnailException(string message, Media media) :base(message, media) {} }