code: public static ExpressionException invalidKey(Config config, Struct sct, Key key, String in) {
  	String appendix = StringUtil.isEmpty(in, true) ? "" : " in the " + in;
  	Iterator<Key> it = sct.keyIterator();
  	Key k;
  
  	while (it.hasNext()) {
  	    k = it.next();
  	    if (k.equals(key)) return new ExpressionException("the value from key [" + key.getString() + "] " + appendix + " is NULL, which is the same as not existing in CFML");
  	}
  	config = ThreadLocalPageContext.getConfig(config);
  	if (config != null && config.debug()) return new ExpressionException(ExceptionUtil.similarKeyMessage(sct, key.getString(), "key", "keys", in, true));
  
  	return new ExpressionException("key [" + key.getString() + "] doesn't exist" + appendix);
      }
docs: throw exception for invalid key
  
  @param key Invalid key
  @return returns an invalid key Exception