2013-01-18 2 views
-4

안드로이드 샘플 코드에서 "throws"의 익숙하지 않은 사용법을 발견했습니다.안드로이드 (또는 자바 아마도) 익숙하지 않은 "던지기"사용

public Void handleResponse(HttpResponse response) throws IOException 
{ 
    ... 
} 

이 경우 "throws"가 어떻게 작동하는지 알고 싶습니다. 나는 적절한 검색 단어 go google을 찾기가 약간 어려웠 기 때문에이 글을 올렸습니다.

+3

인 경우 try {} catch(){} 블록에 메서드 호출을 캡슐화하고, * 모든 * 초보자에 포함되어야한다 자바 서적. 스택 오버플로는 특정 문제에 대해서는 훌륭하지만 실제로 처음부터 언어를 배우는 것은 적합하지 않습니다. 좋은 책 또는 자습서를 읽어야합니다. –

+0

http://bit.ly/VvEoJN "java throws keyword"에 대한 두 번째 인터넷 검색. – Logan

답변

0

어딘가에 handleResponse()가능성이 있습니다. IOException이 발생합니다. 함수를 호출 할 때는 try..catch 블록으로 둘러싸 야합니다.

0

IOException은 확인 된 예외이므로 코드 내부에있는 코드가 IOException 인 경우 (및 사용자가 메서드에서 catch하지 않는 경우) throws IOException이 필요합니다. IOException이 RuntimeException (예 : NullPointerException)이면이 작업은 필요하지 않습니다. 어쩌면 this 질문을보아야합니다.

0

Java Tutorials부터 시작해야합니다. 동일한 튜토리얼 :

모든 메소드는 throw 문을 사용하여 예외를 throw합니다. throw 문에는 단일 인수 인 throwable 객체가 필요합니다. Throwable 객체는 Throwable 클래스의 모든 하위 클래스의 인스턴스입니다. 다음은 throw 문에 대한 예제입니다.

throw someThrowableObject; 
1

메소드 선언 후 throws 키워드는이 방법 이 예외를 던질 수 있음을 나타냅니다.

... 
try { 
    var.handleResponse(response); 
catch (IOException e) { 
    // oops, something went wrong 
    e.printStackTrace(); 
} 
+0

스테판에게 감사드립니다. 선언에서 "throws"키워드를 처음으로 볼 수 있습니다. 그리고 당신의 단순하고 멋진 설명으로 이해했습니다. 고맙습니다! – user1990540

3

난 당신이 throwsthrow 혼합 생각 : 그것은 어떤 호출 방법은 그들과 같이,이 예외를 잡을 수 있도록해야한다는 것을 의미합니다.

throws은 방법의 서명에서 어떤 경우에는 IOException을 표시 할 수 있음을 나타냅니다. throw new IOException()은 실제 예외를 throw합니다.

throws 키워드는 모든 자바 프로그램에서 볼 수 있습니다

, 그리고 힘 당신은 예외가이 그냥 자바 인 checked exception

+0

이런 식으로 생각하는 것도 좋은 생각입니다. – SomeJavaGuy

관련 문제