未报告的异常 UnknownHostException;必须在全局声明期间被捕获或声明为抛出
unreported exception UnknownHostException; must be caught or declared to be thrown during global declaration
我试图在 class 中声明一个全局变量,每当我创建像 int i;
这样的简单变量时,它们很容易创建,但是当我尝试创建一个像 [=12] 这样的对象时=] 它给出了我提到的错误。我知道它要我处理异常,但是程序的这一部分没有语法在工作,try
和 catch
表示非法启动类型。
这可能会通过应用正确的语法来解决。请帮忙。谢谢。
这是我的代码..
public class NumberAdditionUI extends javax.swing.JFrame {
Socket socket = new Socket("192.168.1.3",4917);
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NumberAdditionUI().setVisible(true);
}
});
}
创建您正在使用的套接字的构造函数抛出异常
UnknownHostException
和 'IOException'。这些必须始终在 try catch 中,或者必须至少在控制流中的某个位置被捕获。
但是在你的情况下,你是在全局上下文中声明它,你不能像这种情况那样处理这种异常。
构造函数看起来像这样
public Socket(String host,
int port)
throws UnknownHostException,
IOException
你遇到的问题是 Socket
的构造函数会抛出异常,你需要以某种方式处理它。
有几种简单的方法可以做到这一点。
一种是创建无参数构造函数,并在那里初始化 socket
。然后你可以在那里处理异常,或者声明你抛出它们并让实例化代码处理它:
Socket socket;
public NumberAdditionUI() {
try {
socket = new Socket("192.168.1.3", 4917);
} catch (UnknownHostException e) {
// ...
} catch (IOException e) {
// ...
}
}
// OR
public NumberAdditionUI() throws UnknownHostException, IOException {
socket = new Socket("192.168.1.3", 4917);
}
另一种方法是使用 initialization block:
Socket socket;
{
try {
socket = new Socket("192.168.1.3", 4917);
} catch (UnknownHostException e) {
// ...
} catch (IOException e) {
// ...
}
}
我试图在 class 中声明一个全局变量,每当我创建像 int i;
这样的简单变量时,它们很容易创建,但是当我尝试创建一个像 [=12] 这样的对象时=] 它给出了我提到的错误。我知道它要我处理异常,但是程序的这一部分没有语法在工作,try
和 catch
表示非法启动类型。
这可能会通过应用正确的语法来解决。请帮忙。谢谢。
这是我的代码..
public class NumberAdditionUI extends javax.swing.JFrame {
Socket socket = new Socket("192.168.1.3",4917);
public static void main(String args[]) {
/* Set the Nimbus look and feel */
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NumberAdditionUI().setVisible(true);
}
});
}
创建您正在使用的套接字的构造函数抛出异常
UnknownHostException
和 'IOException'。这些必须始终在 try catch 中,或者必须至少在控制流中的某个位置被捕获。
但是在你的情况下,你是在全局上下文中声明它,你不能像这种情况那样处理这种异常。
构造函数看起来像这样
public Socket(String host,
int port)
throws UnknownHostException,
IOException
你遇到的问题是 Socket
的构造函数会抛出异常,你需要以某种方式处理它。
有几种简单的方法可以做到这一点。
一种是创建无参数构造函数,并在那里初始化 socket
。然后你可以在那里处理异常,或者声明你抛出它们并让实例化代码处理它:
Socket socket;
public NumberAdditionUI() {
try {
socket = new Socket("192.168.1.3", 4917);
} catch (UnknownHostException e) {
// ...
} catch (IOException e) {
// ...
}
}
// OR
public NumberAdditionUI() throws UnknownHostException, IOException {
socket = new Socket("192.168.1.3", 4917);
}
另一种方法是使用 initialization block:
Socket socket;
{
try {
socket = new Socket("192.168.1.3", 4917);
} catch (UnknownHostException e) {
// ...
} catch (IOException e) {
// ...
}
}