code: public String getString(String key) {
          try {
              return this.getStringImpl(key);
          } catch (MissingResourceException e) {
              return handleMissingResourceException(e);
          }
      }
docs: Gets the message with the given key.
  <p>
  The message will be obtained either from the core {@link ResourceBundle} or a {@code ResourceBundle} of an add-on
  (depending on the prefix of the key).
  <p>
  <strong>Note:</strong> Since TODO add version this method no longer throws a {@code MissingResourceException} if the key
  does not exist, instead it logs an error and returns the key itself. This avoids breaking ZAP when a resource message is
  accidentally missing. Use {@link #containsKey(String)} instead to know if a message exists or not.
  
  @param key the key.
  @return the message.
  @see #getString(String, Object...)
  @see #getMessageBundle(String)