类主体 - 调用实例化变量的函数(未处理的异常类型)

时间:2015-12-06 19:10:20

标签: java

我的java代码存在一个小问题。

public class test {

static char[] pass = getMac(); // getting error on this line

public static char[] getMac() throws UnknownHostException
    {
        ...code...

        return x;
    }

}

我已经在方法中抛出了异常,但我也在这一行得到了错误:

static char[] pass = getMac(); // getting error on this line
  

unhandled Exception Type : unknownHostException

有什么方法可以解决这个问题吗?

由于

我试过了:

try
{
   static char[] pass = getMac();
}
catch (UnknownHostException e)
{
   .....
}

但它在主要课程中不起作用。

1 个答案:

答案 0 :(得分:1)

  

我已经在方法中抛出了异常...

右。这就是问题所在。通过说该方法抛出该异常,您强制调用代码来处理它。 Java的类初始化代码不会为您处理它,因此您将收到未处理的异常错误。

在方法中处理它,或者推迟初始化该静态字段,直到可以处理它*为止。请注意,静态初始化程序块允许包含流逻辑,因此这也是一个选项。

在方法中处理它:

public static char[] getMac()
{
    try {
        // ...
        return x;
    }
    catch (UnknownHostException e) {
        // Appropriate handling
        return null; // Or whatever's appropriate
    }
}

使用静态初始化程序块:

public class test {

    static char[] pass;

    static {
        try {
            // ...
            pass = x;
        }
        catch (UnknownHostException e) {
            // Appropriate handling
            pass = null; // Or whatever's appropriate
        }
    }
}