1 package cz.cuni.amis.utils; 2 3 /** 4 * Used for adapting APIs throwing exceptions to usecases where this is not desired. 5 * @author ik 6 */ 7 public abstract class ExceptionDiscarder<T> { 8 9 /** 10 * Specifies the task that should be computed. the task can throw exception but 11 * it will be wrapped by run method to a RuntimeException. 12 * @return 13 * @throws java.lang.Exception 14 */ 15 protected abstract T task() throws Exception; 16 17 public T run() { 18 try { 19 return task(); 20 } catch (Exception ex) { 21 throw new RuntimeException(ex); 22 } 23 } 24 }