我的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)
{
.....
}
但它在主要课程中不起作用。
答案 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
}
}
}