我已将一个变量定义为Long。如果有人将String传递给该变量,则会抛出NumberFormatException。我怎么能抛出自己的信息。就像只允许Long值一样。我在做:
长期; 但是有人输入String而不是Long值。那么它应该通过错误
答案 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.
}