捕获异常后继续(Android/Java)
我想将输入字符串转换为长字符串:捕获异常后继续(Android/Java),java,android,exception-handling,Java,Android,Exception Handling,我想将输入字符串转换为长字符串: String inputStr = inputText.getText().toString(); Long inputNumber = Long.valueOf(inputStr); // do something with inputNumber 但是,如果用户输入带有字母的字符串,valueOf()将引发一些异常,从而导致程序崩溃 另一方面,如果围绕valueOf()构建try-catch块,则会出现“无法解析符号inputNumber”错误。如果我在块
String inputStr = inputText.getText().toString();
Long inputNumber = Long.valueOf(inputStr);
// do something with inputNumber
但是,如果用户输入带有字母的字符串,valueOf()将引发一些异常,从而导致程序崩溃
另一方面,如果围绕valueOf()构建try-catch块,则会出现“无法解析符号inputNumber”错误。如果我在块外声明Long inputnumber,则会出现“此变量可能未初始化”错误
我只想在textView中为不正确的inputStr输出一条错误消息,然后像往常一样继续程序。如何执行此操作?在try/catch之外声明并初始化inputNumber:
Long inputNumber = null;
try {
inputNumber = Long.valueOf(inputStr);
}
catch (NumberFormatException e) {
// handle exception
}
在try/catch之外声明并初始化inputNumber:
Long inputNumber = null;
try {
inputNumber = Long.valueOf(inputStr);
}
catch (NumberFormatException e) {
// handle exception
}
我更喜欢使用util类并声明一个布尔方法,并使用它检查输入的数字是否为数字。这是可重用的代码
public class StringUtil {
public static boolean isNumeric(String str) {
boolean returnVal = false;
if (isNotEmpty(str)) {
try {
Long.parseLong(str);
returnVal = true;
} catch (NumberFormatException e) {
returnVal = false;
}
}
return returnVal;
}
}
用你的方法
String inputStr = inputText.getText().toString();
Long inputNumber = null;
if (StringUtil.isNumeric(inputStr)) {
inputNumber = Long.valueOf(inputStr);
// do something with inputNumber
} else {
// either notify user or whatever you want to do.
}
如果您可以使用ApacheCommons,那么您可以使用它的
我更喜欢使用util类并声明一个布尔方法,并使用它检查输入的数字是否为数字。这是可重用的代码
public class StringUtil {
public static boolean isNumeric(String str) {
boolean returnVal = false;
if (isNotEmpty(str)) {
try {
Long.parseLong(str);
returnVal = true;
} catch (NumberFormatException e) {
returnVal = false;
}
}
return returnVal;
}
}
用你的方法
String inputStr = inputText.getText().toString();
Long inputNumber = null;
if (StringUtil.isNumeric(inputStr)) {
inputNumber = Long.valueOf(inputStr);
// do something with inputNumber
} else {
// either notify user or whatever you want to do.
}
如果您可以使用ApacheCommons,那么您可以使用它的 try Long.parseLong(字符串s)此链接可能会帮助您尝试Long.parseLong(字符串s)此链接可能会帮助您