gpt4 book ai didi

java - (Java)学习try catch中的return方法

转载 作者:行者123 更新时间:2023-12-01 20:04:50 24 4
gpt4 key购买 nike

所以这是我的代码,我正在尝试在返回方法中学习 try/catch。我想捕获一个异常,其中十六进制字符串不是偶数,但我的异常没有完全执行 System.out.println("十六进制字符串无效...等"),并且我无法删除最后第二行返回 null;因为它基本上意味着即使它不是偶数,它仍然允许该方法运行。我该如何防止这种情况发生?我说得有道理吗?

基本上,如果周长不是偶数,我不希望该方法通过!

    String hexString2 = "400000010";
String hexString3 = "1A5E4567";

System.out.println(toLittleEndian(hexString2));

    public static String toLittleEndian(String hexString) {

if (hexString.length() % 2 == 0) {
try {

String[] tempArr = new String[hexString.length() / 2];
String result = "";
int count = 0;

for (int i = 0; i < hexString.length(); i += 2) {
String temp = "";
temp += hexString.charAt(i);
temp += hexString.charAt(i + 1);
tempArr[count] = temp;
System.out.println(tempArr[count]);
count++;
}

for (int i = ((hexString.length() / 2) - 1); i >= 0; i -= 1) {
result += tempArr[i];
}

return result;

} catch (Exception ex) {
System.out.println("Hex String is invalid length! (Must be even number)");
}
}
return null;
}

最佳答案

您已编写 if 条件如下

if (hexString.length() % 2 == 0)

您的陈述不清楚十六进制字符串不是偶数而条件却相反

  • 如果您希望 hexString 的长度应该为偶数,请使用如下代码。

if (hexString.length() % 2 == 0){ ....... ...... }else{ throw new Exception("Length is odd"); }

  • 如果您希望 hexString 应该是偶数/奇数,请使用如下代码。

if (hexString % 2 == 0){ ....... ...... }else{ throw new Exception("Length is odd"); }

Throw new 会向方法调用抛出异常,但如果条件包含在 try/catch block 内,则异常将在相应的 catch 处接收。

关于java - (Java)学习try catch中的return方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58988828/

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