[Demonstration 1]

[Buggy Method]
public Resource createRelative(String relativeResourcePath) throws IOException {
    try {
        return new HttpResource(url.resolve(new URI(relativeResourcePath)));
    } catch (URISyntaxException e) {
        throw new IOException("Could not resolve " + url + " against " + relativeResourcePath, e);
    }
}

[Buggy Hunk]
throw new IOException( "Could not resolve " + url + " against " + relativeResourcePath, e );

[Patch]
throw (IOException)new IOException( "Could not resolve " + url + " against " + relativeResourcePath ).initCause(e);

[Demonstration 2]

[Buggy Method]
public static void setField(Object obj, Field field, Object value) {
    try {
        //if do not set accessible, then will cause exception
        field.setAccessible(true);
        setField(obj, field, true);
    } catch (Exception e) {
        LOGGER.error("set field failure", e);
        ;
        throw new RuntimeException(e);
    }
}

[Buggy Hunk]
LOGGER.error("set field failure", e);;

[Patch]
LOGGER.error("set field failure", e);

[Demonstration 3]

[Buggy Method]
public void setWage(double wage) {
    if (wage < 0) {
        throw new RuntimeException("wage ( + wage + ) should not less than $0");
    }
    this.wage = wage;
}

[Buggy Hunk]
throw new RuntimeException("wage ( + wage + ) should not less than $0");

[Patch]
throw new RuntimeException("wage (" + wage + ") should not less than $0");