public static void stringNotEmptyAndThenExecute(String source, Runnable runnable) {
        
        if (StringUtils.isNotEmpty(source)) {
            
            try {
                runnable.run();
            } catch (Exception e) {
                LogUtils.NAMING_LOGGER.error("string not empty and then execute cause an exception.", e);
            }
        }
    }
@Test
    void testStringNotEmptyAndThenExecuteException() {
        String word = "run";
        Runnable task = Mockito.mock(Runnable.class);
        doThrow(new RuntimeException("test")).when(task).run();
        TemplateUtils.stringNotEmptyAndThenExecute(word, task);
        Mockito.verify(task, Mockito.times(1)).run();
        // NO exception thrown
    }