2017-11-27 11 views
-4

私はプロトコルに関するレッスンを読んでいましたが、なぜipv4アドレスを取得するためにtry/catchを使うのか分かりません。ipv4アドレスを取得するために試してみる

import java.net.Inet4Address; 
import java.net.UnknownHostException; 

public class P1 { 
    public static void main(String[] args) { 
     try{ 
      System.out.println(Inet4Address.getLocalHost().getHostAddress()); 
     }catch(UnknownHostException e){ 
      e.printStackTrace(); 
     } 
    } 
} 
+0

コードのスクリーンショットを投稿しないでください。自己完結型の素敵なコードがある場合は、実際の質問にテキストとして入力してください。 [コードの画像](http://idownvotedbecau.se/imageofcode) – khelwood

+0

[お問い合わせ方法](http://stackoverflow.com/help/how-to-ask) – Abhijeetk431

答えて

0

方法「はgetLocalHost」の署名は次のようになります: はあなた コードに感謝です

InetAddress java.net.InetAddress.getLocalHost() throws UnknownHostException 

いわゆる「例外をチェックし、」例外メソッドの実行中にあることを意味(UnknownHostException)が発生する可能性があります。したがって、メソッドのすべての呼び出し元(あなたの例ではmainメソッド)は、何とかその例外を処理することになっています。 "getLocalHost"の設計者は、このエラーが重要であり、呼び出し元によって処理されなければならないと定義しました。そのため、 "throw UnknownHostException"が追加されました。

try/catchを使用すると、UnknownHostExceptionが発生した場合に起こるべきことをcatch部分で定義できます。

たとえば、あなたは、コンソールに理解できるメッセージを書き込み、アプリケーションを終了できます。

package com.example; 

import java.net.Inet4Address; 
import java.net.UnknownHostException; 

public class P1 { 

    public static void main(String[] args) { 
     try { 
      System.out.println(Inet4Address.getLocalHost().getHostAddress()); 
     } catch (UnknownHostException e) { 
      System.err.println("An error occurred while fetching IP address"); 
      System.exit(1); 
     } 
    } 

} 

を使用すると、すぐに例外を処理することを余儀なくされていない一方。また、メソッドがUnknownHostExceptionをスローするように定義することもできます。それは、あなたのメソッドを呼び出す人がそれに対処しなければならないことを意味します。 メソッドの呼び出し側は、自分のメソッドがUnknownHostExceptionをスローすることも定義できます。等々。方法としては

package com.example; 

import java.net.Inet4Address; 
import java.net.UnknownHostException; 

public class P1 { 

    public static void main(String[] args) throws UnknownHostException { 
     System.out.println(Inet4Address.getLocalHost().getHostAddress()); 
    } 

} 

すでに何らかのさらにあなたがすることができないバブルの例外をメインエントリポイントです。これは、try/catchを使用しない場合、UnknownHostExceptionがデフォルトでコンソールに表示されることを意味します。

関連する問題