code: func PluginMainWithError(cmdAdd, cmdCheck, cmdDel func(_ *CmdArgs) error, versionInfo version.PluginInfo, about string) *types.Error {
  	return (&dispatcher{
  		Getenv: os.Getenv,
  		Stdin:  os.Stdin,
  		Stdout: os.Stdout,
  		Stderr: os.Stderr,
  	}).pluginMain(cmdAdd, cmdCheck, cmdDel, versionInfo, about)
  }
docs: // PluginMainWithError is the core "main" for a plugin. It accepts
  // callback functions for add, check, and del CNI commands and returns an error.
  //
  // The caller must also specify what CNI spec versions the plugin supports.
  //
  // It is the responsibility of the caller to check for non-nil error return.
  //
  // For a plugin to comply with the CNI spec, it must print any error to stdout
  // as JSON and then exit with nonzero status code.
  //
  // To let this package automatically handle errors and call os.Exit(1) for you,
  // use PluginMain() instead.