001package gudusoft.gsqlparser.catalog.input; 002 003import gudusoft.gsqlparser.catalog.diagnostic.CatalogDiagnosticCode; 004 005/** 006 * Strict-mode failure raised by {@link CatalogInputReader#read} or by 007 * {@link CatalogInputReaders#forSource(CatalogInputSource, CatalogLoadOptions)} when no 008 * matching reader is registered (or more than one matches ambiguously). 009 * 010 * <p>Plan §7.1 / §13.1.</p> 011 */ 012public class CatalogInputException extends Exception { 013 014 private static final long serialVersionUID = 1L; 015 016 private final CatalogDiagnosticCode code; 017 018 public CatalogInputException(String message) { 019 this(message, null, null); 020 } 021 022 public CatalogInputException(String message, Throwable cause) { 023 this(message, cause, null); 024 } 025 026 public CatalogInputException(String message, CatalogDiagnosticCode code) { 027 this(message, null, code); 028 } 029 030 public CatalogInputException(String message, Throwable cause, CatalogDiagnosticCode code) { 031 super(message, cause); 032 this.code = code; 033 } 034 035 /** Stable diagnostic code, or {@code null} if none was supplied. */ 036 public CatalogDiagnosticCode code() { 037 return code; 038 } 039}