如果字符串长度超过20,因为字符串是用str输入的
生成带有字符串“超过 20 个单词”的 RuntimeException
如果 str 为 null,则会生成 RuntimeException,字符串为“null”
如果这两种情况都不是这种情况,请编写一个 len_check 函数,按原样返回接收到的字符串。
输出示例。
System.out.println(len_check("abcdefghijklmnopqrs"));
abcdefghijklmnopqrs
System.out.println(len_check("abcdefghijklmnopqrsuvw"));
Exception in thread "main" java.lang.RuntimeException: More than 20 words
at ...
System.out.println(len_check(null));
Exception in thread "main" java.lang.RuntimeException: null
at ...
import java.lang.*;
class Main {
public static String len_check(String str) {
try {
if (str.length() > 20) {
throw new RuntimeException("Length is greater than 20");
} else if (str == null) {
throw new RuntimeException("null");
} else {
return str;
}
} catch (RuntimeException e) {
throw e;
}
}
public static void main(String[] args) {
System.out.println(len_check("abcdefghijklmnopqrs"));// abcdefghijklmnopqrs
System.out.println(len_check("abcdefghijklmnopqrsuvw"));
System.out.println(len_check(null));
}
}
输出时第二条打印语句发生错误(这是我故意的错误)并停止。我希望将其打印出来,直到出现最后一个错误。
为了防止程序在第一个错误后退出,您应该在调用本身上使用 try-catch 块,而不是在抛出错误的函数内部。如果您在抛出它们的同一位置处理它们,那么您可能根本不抛出它们,并且如果您尝试在同一个 try-catch 块中处理所有三个函数调用,它将在第一个错误后退出。
import java.lang.*;
class Main {
public static String len_check(String str) {
if (str.length() > 20) {
throw new RuntimeException("Length is greater than 20");
} else if (str == null) {
throw new RuntimeException("null");
} else {
return str;
}
}
public static void main(String[] args) {
try {
System.out.println(len_check("abcdefghijklmnopqrs"));// abcdefghijklmnopqrs
} catch (Exception e) {
System.out.println("Error: " + e);
}
try {
System.out.println(len_check("abcdefghijklmnopqrsuvw"));
} catch (Exception e) {
System.out.println("Error: " + e);
}
try {
System.out.println(len_check(null));
} catch (Exception e) {
System.out.println("Error: " + e);
}
}
}