gpt4 book ai didi

java - 如何处理具有相同 catch block 的解析数字?

转载 作者:行者123 更新时间:2023-12-03 22:58:56 25 4
gpt4 key购买 nike

我经常遇到需要解析数值(例如使用 Integer.parseInt 或 Double.parseDouble)并且我有多个值的情况。问题是我发现自己不得不重复异常处理,它变得很难看。例如,采用以下代码:

double lowVal, mediumVal, highVal;
String lowString = "1.2", mediumString = "null", highString = "7.9";

try {
lowVal = parseDouble(lowString);
} catch (NumberFormatException NaN) {
//Don't care, just carry on trying to parse the rest...
}

try {
mediumVal = parseDouble(mediumString);
} catch (NumberFormatException NaN) {
//Don't care, just carry on trying to parse the rest...
}

try {
highVal = parseDouble(highString);
} catch (NumberFormatException NaN) {
//Don't care, just carry on trying to parse the rest...
}

是否有处理这种情况的良好模式?

我不想使用单次 try catch ,因为我想继续解析其余数字。

我应该提一下,在这个例子中,值没有被初始化,但在实际的程序代码中它们会被初始化。仅当字符串值可解析时才应进行赋值。

最佳答案

只是提取一个方法:

double lowVal, mediumVal, highVal;
String lowString = "1.2", mediumString = "null", highString = "7.9";

lowVal = parseDouble(lowString);
mediumVal = parseDouble(mediumString);
highVal = parseDouble(highString);

double parseDouble(String s) {
try {
return Double.parseDouble(s);
} catch (NumberFormatException e) {
return Double.NAN;
}
}

Double lowVal;
Double mediumVal;
Double highVal;
String lowString = "1.2", mediumString = "null", highString = "7.9";

lowVal = parseDouble(lowString);
mediumVal = parseDouble(mediumString);
highVal = parseDouble(highString);

Double parseDouble(String s) {
try {
return Double.parseDouble(s);
} catch (NumberFormatException e) {
return null;
}
}

关于java - 如何处理具有相同 catch block 的解析数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35512442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com