Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
捕获异常后继续(Android/Java)_Java_Android_Exception Handling - Fatal编程技术网

捕获异常后继续(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)此链接可能会帮助您