package de.gecheckt.pdf.umbenenner.application.port.out;

/**
 * Wird geworfen, wenn das Schreiben der Scheduler-Einstellungen in die
 * {@code .properties}-Datei fehlschlägt.
 * <p>
 * Der Schreibvorgang ist atomar (über eine temporäre Datei), sodass die
 * Konfigurationsdatei bei einem Fehler nicht in einem korrupten Zustand
 * hinterlassen wird. Diese Ausnahme signalisiert, dass weder der neue
 * noch ein partieller Stand geschrieben wurde.
 * <p>
 * Ursachen können sein: fehlende Schreibrechte, Netzlaufwerksfehler,
 * Festplatte voll oder ein aktiver exklusiver Lock durch einen anderen Prozess.
 */
public class SchedulerSettingsWriteException extends RuntimeException {

    /**
     * Erstellt eine neue {@code SchedulerSettingsWriteException} mit der
     * angegebenen Nachricht.
     *
     * @param message deutsche Fehlerbeschreibung
     */
    public SchedulerSettingsWriteException(String message) {
        super(message);
    }

    /**
     * Erstellt eine neue {@code SchedulerSettingsWriteException} mit
     * Nachricht und Ursache.
     *
     * @param message deutsche Fehlerbeschreibung
     * @param cause   technische Ursache
     */
    public SchedulerSettingsWriteException(String message, Throwable cause) {
        super(message, cause);
    }
}
