2017-11-27 15 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을 throw하도록 정의 할 수도 있습니다. 그것은 당신의 방법을 부르는 누군가가 그것을 다루어야한다는 것을 의미합니다. 메서드의 호출자는 자신의 메서드가 UnknownHostException을 throw하도록 정의 할 수도 있습니다. 등등.

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이 기본적으로 콘솔에 표시됩니다.