@Override
	public void handleError(String title, String message, URL url, IOException cause)
			throws IOException {
		if (!throwErrorByDefault) {
			Msg.showError(GhidraURLQuery.class, null, title, message + ":\n" + url);
		}
		if (cause != null) {
			throw cause;
		}
		throw new IOException(title + ": " + message);
	}
Construct adapter with preferred error handling.  There is no need to use this constructor
if {@link #handleError(String, String, URL, IOException)} is override.
@param throwErrorByDefault if true all errors will be thrown as an {@link IOException},
otherwise error is reported via {@link Msg#showError(Object, java.awt.Component, String, Object)}.
Ghidra/Framework/Project/src/main/java/ghidra/framework/protocol/ghidra/GhidraURLResultHandlerAdapter.java