PageLoadException.java
package net.sasasin.sreader.service.autopagerize;
import java.util.Objects;
import net.sasasin.sreader.service.outcome.FailureKind;
/**
* Failure while loading a page through an {@link ArticlePageSession}. Carries a structured {@link
* FailureKind} so callers can map HTTP status, I/O, interrupt, and invalid input without parsing
* message strings.
*/
public class PageLoadException extends Exception {
private final FailureKind kind;
public PageLoadException(String message) {
this(FailureKind.IO, message);
}
public PageLoadException(String message, Throwable cause) {
this(FailureKind.IO, message, cause);
}
public PageLoadException(FailureKind kind, String message) {
super(message);
this.kind = Objects.requireNonNull(kind, "kind must not be null");
}
public PageLoadException(FailureKind kind, String message, Throwable cause) {
super(message, cause);
this.kind = Objects.requireNonNull(kind, "kind must not be null");
}
public FailureKind kind() {
return kind;
}
}