[英]In Java, Is it possible to return more than one value from try catch block?
我想从控制台读取ID,名称和分数以供其他用途。 但是这三个变量都在try-catch块范围内。 我想知道是否有任何方法可以从try-catch返回这三个值。( 如果我不想将三个变量分别放在三对try-catch块中 )感谢您的时间。
这是我的示例代码:
StuManage sm = new StuManage();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter the student ID: ");
try {
String Id = br.readLine();
String name = br.readLine();
float score =Float.parseFloat(br.readLine());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
是。 只需将方法声明为throws IOException
并完全删除try catch。
是的,您可以声明并初始化为无效值
String id = null;
String name = null;
float score = 1.0f;
try {
id = br.readLine();
name = br.readLine();
score = Float.parseFloat(br.readLine());
} catch (IOException e) {
然后你需要检查后尝试阻止哪些值仍然保持和无效的初始值...
只需确保使用默认值将变量声明为方法的全局变量,这样就可以在整个方法中访问它们。
另一种解决方案是从方法中删除try/catch
,而不是将try/catch
放在main
方法中,这样你就可以让异常(如果有的话)冒泡到main方法然后处理它们在那里,您也将受益,因为您不再需要担心范围问题。
很容易你不能,因为try和catch块是用于检查代码块的错误,因为在try块之外不能访问代码块以进行真正的测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.