2017-01-25 2 views
-2
public class StringToPhoneNumberConverter implements Converter<String, PhoneNumberModel> { 
    Pattern pattern = Pattern.compile("^(\\d{3,4})-(\\d{7,8})$"); 
    public PhoneNumberModel convert(String source){ 
     if(!StringUtils.hasLength(source)){ 
      //if "source" is empty, return null 
      System.out.println("dsads"); 
      return null; 
     } 
     System.out.println("dqwdwwdqwq"); 
     Matcher matcher = pattern.matcher(source); 
     if(matcher.matches()){ 
      //If it matches, start converting 
      PhoneNumberModel phoneNumber = new PhoneNumberModel(); 
      phoneNumber.setAreaCode(matcher.group(1)); 
      phoneNumber.setPhoneNumber(matcher.group(2)); 
      System.out.println("dsads"); 
      return phoneNumber; 
     }else{ 
      System.out.println("dsadsqqdwqqqqqqqqqqqqq"); 
      //If it doesnt match throw an exception 
      throw new IllegalArgumentException(String.format("Failed to change the string to a phone number. The format is supposed to be [010-12345678], not [%s]", source)); 
     } 
    } 
} 

Метод бросил IllegalArgumentException, когда я конвертировать («dsadsdwqdwqqqqqqqqqqqq»). Когда я помещал код, который выдавал исключение при тестировании, я нашел сообщение об исключении в консоли. Извините за плохой английский.IllegalArgumentException появился, когда не предполагается

+2

Пожалуйста, введите код в вопрос, а не как изображение! –

+0

Это не простой вопрос Java, добавьте тег с каркасом, который вы используете, и который содержит интерфейс конвертера. – tak3shi

ответ

0

Если ваш вход не соответствует выражению "^ (\\ d {3,4}) - (\\ d {7,8}) $", всегда должно быть выбрано исключение IllegalArgumentException.

Независимо от того, что вы вызываете функцию из теста или запускаете программу из командной строки.

Просьба передать код функции вызова для получения дополнительных пояснений.

Смежные вопросы