throw new IOException("BlockDeviceAPI not found on parent device", ex);
final IOException ioe = new IOException("BlockDeviceAPI not found on device"); ioe.initCause(ex); throw ioe;
	public MappedBlockDeviceSupport(Device parent, long offset, long length) throws IOException {		super(parent.getBus(), "mapped-" + parent.getId());		this.parent = parent;		try {			this.parentApi = (BlockDeviceAPI)parent.getAPI(BlockDeviceAPI.class);		} catch (ApiNotFoundException ex) {			throw new IOException("BlockDeviceAPI not found on parent device", ex);		}		this.offset = offset;		this.length = length;		if (offset < 0) {			throw new IndexOutOfBoundsException("offset < 0");		}		if (length < 0) {			throw new IndexOutOfBoundsException("length < 0");		}		if (offset + length > parentApi.getLength()) {			throw new IndexOutOfBoundsException("offset + length > parent.length");		}		registerAPI(BlockDeviceAPI.class, this);	}