package org.libvirt;
import org.libvirt.jna.Libvirt;
import org.libvirt.jna.virError;
/**
* Utility class which processes the last error from the libvirt library. It
* turns errors into Libvirt Exceptions.
*
* @author bkearney
*/
public class ErrorHandler {
/**
* Look for the latest error from libvirt not tied to a connection
*
* @param libvirt
* the active connection
* @throws LibvirtException
*/
public static void processError(Libvirt libvirt) throws LibvirtException {
virError vError = new virError();
int errorCode = libvirt.virCopyLastError(vError);
if (errorCode > 0) {
Error error = new Error(vError);
libvirt.virResetLastError();
/*
* FIXME: Don't throw exceptions for VIR_ERR_WARNING level errors
*/
if (error.getLevel() == Error.ErrorLevel.VIR_ERR_ERROR) { throw new LibvirtException(error); }
}
}
}