public static List<String> getParams(String description) {
        // find all match params key in description
        Matcher matcher = PARAMS_PATTERN.matcher(description);
        List<String> params = new ArrayList<>();
        while (matcher.find()) {
            String key = matcher.group(1);
            params.add(key);
        }
        return params;
    }
@Test
    void testGetParamsForDescription() {
        String description = "test description with param <key1>, <key2> and <key3>.";
        Assertions.assertIterableEquals(
                Arrays.asList("key1", "key2", "key3"), ExceptionParamsUtil.getParams(description));
        String description2 = "test description with no param.";
        Assertions.assertIterableEquals(
                Collections.emptyList(), ExceptionParamsUtil.getParams(description2));
        String description3 = "test description with wrong param <>, <, >, < >.";
        Assertions.assertIterableEquals(
                Collections.emptyList(), ExceptionParamsUtil.getParams(description3));
    }