/*
 * @author Ranides Atterwim <ranides@gmail.com>
 * @copyright Ranides Atterwim
 * @license WTFPL
 * @url http://ranides.net/projects/assira
 */

package net.ranides.assira.functional;

import net.ranides.assira.trace.ExceptionUtils;

/**
 *
 * @author Ranides Atterwim <ranides@gmail.com>
 */
public interface CheckedRunnable<E extends Exception> {

    void run() throws E;
    
    default void $run() {
        try {
            run();
        } catch(Exception cause) {
            throw ExceptionUtils.rethrow(cause);
        }
    }

}
