繁体   English   中英

在Java中,是否可以从try catch块返回多个值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM