2016-07-14 9 views
3

Как я могу найти пустые блоки catch try?Intellij Structural Search: Как найти пустые блоки catch?

Использования копирования существующего шаблона ... Я нашел структурный поиск попытку поймать:

try { 
    $TryStatement$; 
} catch($ExceptionType$ $Exception$) { 
    $CatchStatement$; 
} 

Я хочу, чтобы улучшить его так, чтобы он только найти попробовать уловы с пустым уловом блоками

It должны найти:

try { 
     assertTrue(output.validate()); 
    } catch (Exception e) { 
     //TODO something 
    } 

или

try { 
     assertTrue(output.validate()); 
    } catch (Exception e) { 

    } 

или

try { 
     assertTrue(output.validate()); 
    } catch (Exception e) {} 

Однако нет:

try { 
     assertTrue(output.validate()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Сейчас, очевидно, находит и так как нет никакой дифференциации посредников. Как добавить дополнительную чек?

+2

Вместо использования структурного поиска, вы также можете сделать: Анализ/Выполнить осмотр по названию/Empty «поймать» Block – Jesper

+0

thx, но он не находит пустой catch с комментарием, как в первом примере. – user1167253

+2

В блоке * Empty 'catch' block * есть возможность считать комментарии как содержимое, которое вы можете отключить. –

ответ

0

Используйте шаблон, который вы нашли и на переменную CatchStatement установить кол Min и Max сосчитать до 0.