### Question:
ProxyUtils { @SuppressWarnings("unchecked") public static <T> T createProxyFromAbstract( Class<T> clazz, Class[] paramTypes, Object[] args, InvocationHandler invocationHandler) { ProxyFactory proxyFactory = new ProxyFactory(); proxyFactory.setSuperclass(clazz); proxyFactory.setFilter(method -> Modifier.isAbstract(method.getModifiers())); try { return (T) proxyFactory.create( paramTypes, args, (o, method, method1, objects) -> invocationHandler.invoke(o, method, objects)); } catch (Exception e) { LOGGER.error("Failed creating proxy from abstract class", e); throw new RuntimeException("Failed creating proxy from abstract class", e); } } private  ProxyUtils(); @SuppressWarnings("unchecked") static T createProxy(Class<T> clazz, InvocationHandler invocationHandler); @SuppressWarnings("unchecked") static T createProxyFromAbstract(
      Class<T> clazz, Class[] paramTypes, Object[] args, InvocationHandler invocationHandler);  }### Answer:
@Test(expected = RuntimeException.class) public void testCreateProxyFromAbstractThrowsException() { createProxyFromAbstract( ChromeDevToolsServiceImpl.class, new Class[] {}, new Object[] {}, (unused, method, args) -> null); }