module graphql.exception; class ParseException : Exception { @safe: int line; string[] subRules; string[] follows; this(string msg) { super(msg); } this(string msg, string f, int l, string[] subRules, string[] follows) { import std.format : format; super(format( "%s [%(%s,%)]: While in subRules [%(%s, %)] at %s:%s", msg, follows, subRules, f, l), f, l ); this.line = l; this.subRules = subRules; this.follows = follows; } this(string msg, ParseException other) { super(msg, other); } this(string msg, ParseException other, string f, int l) { super(msg, f, l, other); this.line = l; } } @safe: class GQLDExecutionException : Exception { this(string msg, string f = __FILE__, size_t l = __LINE__) { super(msg, f, l); this.line = l; } }