Long

时间:2018-05-23 10:13:04

标签: java

我已将一个变量定义为Long。如果有人将String传递给该变量,则会抛出NumberFormatException。我怎么能抛出自己的信息。就像只允许Long值一样。我在做:

长期; 但是有人输入String而不是Long值。那么它应该通过错误

4 个答案:

答案 0 :(得分:3)

您可以使用以下内容。

try {
        ....////
    }
    catch (NumberFormatException nfe) {
        throw new NumberFormatException("The value you entered, " + value+ " is invalid.");
    }

答案 1 :(得分:0)

抓住并重新抛出自己的异常

try {
  l = Long.parseLong(text);
} catch (NumberFormatException ex) {
  throw new IllegalArgumentException("Only long values are allowed", ex);
}

答案 2 :(得分:0)

您可以定义自己的Exception

class LongValueException extends Exception {

    public LongValueException () {
    }

    public LongValueException (String message) {
        super(message);
    }
}

然后在try...catch

中调用它
try{
    Long.parseLong(yourString);
}
catch (NumberFormatException e){
    throw new LongValueException ("Only long can be used here");
}

答案 3 :(得分:0)

你可以写regexp很长时间。之后你应该检查你的长字符串regexp。如果字符串与模式不匹配,则可以记录错误消息。

String longRegexp = "^-?[0-9]{1,19}$";
if(!yourLong.matches(longRegexp )){
    //Log it.
}