constructor(error, msg, details) {
        super(msg);
        if (msg == null && details == null && FormulaError.errorMap.has(error))
            return FormulaError.errorMap.get(error);
        else if (msg == null && details == null) {
            this._error = error;
            FormulaError.errorMap.set(error, this);
        } else {
            this._error = error;
        }
        this.details = details;
    }
@param {string} error - error code, i.e. #NUM!
@param {string} [msg] - detailed error message
@param {object|Error} [details]
@returns {FormulaError}