module mars.ServerException; import mars.StatusCode; class ServerException : Exception { private int mStatusCode; this(int statusCode) { super(toMessage(statusCode)); statusCode = statusCode; } int getStatusCode() { return mStatusCode; } private string toMessage(int statusCode) { import std.conv; string result; switch(statusCode) { case StatusCode.BAD_REQUEST: result = "Bad Request"; break; case StatusCode.UNAUTHORIZED: result = "Unauthorized"; break; case StatusCode.FORBIDDEN: result = "Forbidden"; break; case StatusCode.NOT_FOUND: result = "Not Found"; break; case StatusCode.CONFLICT: result = "Conflict"; break; default: result = "Unknown Error"; } return to!string(statusCode) ~ result; } }