尝试捕获块后的JAVA单元化对象

aNNgeL0

我正在努力尝试使用try and catch代码块。如何在该块之后的try catch块中初始化对象?我知道在try catch之后,对象值将被销毁,但是仍然有什么方法可以让我在该块之后对其进行初始化?

 public static void main(String[] args) throws Error {
            Person p1=null;Person p2=null;
            Student s1=null;Student s2=null;
            Employe a=null;
            try{
            p1 = new Person("Zeer", "Sohn", 1.7,2, 100); //Name , surname,height,age
            p2 = new Person("Zeer", "Mike", 1.63, 39);
            s1 = new Student("Johnson", "John", 1.9, 21, 2, 1);
            s2 = new Student("Deer", "Son", 1.52, 20, 1, 1);
            a = new Employe("Stewie", "Michael", 1.74, 44, 12, 440);

            }catch (Error.ErrorHeight e){

                System.out.println("Error height:"+e.getMessage());
            }catch (Error.ErrorAge e){
                System.out.println("Error age: "+e.getMessage());
            }catch (Error.ErrorSalary e){
                System.out.println("Error salary"+e.getMessage());
            } catch (Error e) {
                System.out.println("General error"+e.getMessage());

            };

            Person []p={p1,p2,s1,s2,a};

            for (Person i : p)
                System.out.println(i);
            System.out.println(" ");
            System.out.println("Sort:");
            c = new Comparator<Person>() {
                public int compare(Person o1, Person o2) {

                    return o1.getAge() - o2.getAge();

                }
            };
            Arrays.sort(p, c);
病态码
我知道在try catch之后,对象值将被破坏。

是的。当创建的对象的变量超出其创建范围时,垃圾回收器将声明该对象。如果您希望它保持活动状态,则可以在try块之外声明变量,就像您在以下代码中所做的那样:

        Person p1=null;Person p2=null;
        Student s1=null;Student s2=null;

但是,如果这些对象中的一个或多个出现异常,则初始化将不会完成,并且这些对象将恢复为空。您可以在try块之前为其提供默认值。或者只是在try块之外对其进行初始化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章