2010-01-08 4 views
14

누구든지 Java 런타임 예외 처리 방법을 설명 할 수 있습니까?Java RuntimeExceptions 다루기

+0

저는 비계수제가 공허한 위협이라는 것을 지금 생각했습니다. 우리는 개조 점이 필요합니다! – danben

+1

어디서나 버튼을 받아 본 적이 없습니까? – Ravikanth

+0

답변 옆에있는 큰 틱/수정 표시입니다. – Gordon

답변

34

그것은 일정한 예외를 처리 다르지 않다 : 당신이 던져 질 수있는 예외의 유형을 알고있는 경우

try { 
    someMethodThatThrowsRuntimeException(); 
} catch (RuntimeException ex) { 
    // do something with the runtime exception 
} 
+0

은 런타임 예외를 잡을 수 있습니다 ..? – Ravikanth

+3

물론! Throwable의 모든 서브 클래스를 포착 할 수 있습니다. –

+0

이 질문에 대한 문제점을 보지 못했습니다. 런타임 오류를 일으키는 것으로 의심되는 Runnable을 가지고 있었으며 RunTimeException catch를 추가하고 catch/try에 코드를 래핑 할 수 있다는 것을 인식하지 못했습니다. 나는 Googled'Android 처리 런타임 예외 ',이 처음 나온 질문 &이 대답은 내가 필요한 것을 제공했습니다. 정확히 SO가 어떻게 작동해야 할 것인가? – Mitch

4

, 당신은 명시 적으로 그것을 잡을 수 있습니다. Exception도 잡을 수 있지만 일반적으로 모든 유형의 예외를 동일한 방식으로 처리하기 때문에 이는 매우 나쁜 관행으로 간주됩니다.

일반적으로 RuntimeException은 정상적으로 처리 할 수 ​​없으며 프로그램을 정상적으로 실행하는 동안 throw되지 않을 것으로 예상됩니다.

+0

아마도 네트워크를 통해 특정 호스트에 도달 할 수 없기 때문에 사용자 정의 구성 요소가 RuntimeException을 던지면서 Android 앱이 충돌하는 경우를 제외하고는. –

2

다른 예외와 마찬가지로 그저 잡을 수 있습니다.

try { 
    somethingThrowingARuntimeException() 
} 
catch (RuntimeException re) { 
    // Do something with it. At least log it. 
} 
1

회원님이 자바 RuntimeException에 직접 참조하고, 그래서 당신은 런타임 예외에 대해 얘기하고 가정합니다 경우 확인합니다.

Java에서 예외 처리의 기본 개념은 예외를 발생시킬 수있는 코드를 다음과 같이 캡슐화하는 것입니다.

try { 
    // Do something here 
} 

그런 다음 예외를 처리합니다. 에 관계없이 예외가 발생 여부에 실행하기 위해 어떤 일을해야하는 경우

catch (Exception e) { 
    // Do something to gracefully fail 
} 

, finally를 추가합니다.

finally { 
    // Clean up operation 
} 

모두 함께 보입니다.

try { 
    // Do something here 
} 
catch (AnotherException ex) { 
} 
catch (Exception e) { //Exception class should be at the end of catch hierarchy. 
} 
finally { 
} 
+0

우리는 런타임 예외를 잡을 수 있습니까? 어떻게 가능합니까? 런타임 예외 상황을 알면서 프로그래밍 방식으로 어떻게 잡을 수 있습니까? – Ravikanth

+0

'catch (ExceptionType name) {}'을 사용하여 모든 유형의 예외를 잡을 수 있습니다. 그렇지 않으면'catch {}'를 사용하여 모든 예외를 catch하거나'catch (Exception name) {}'를 사용하여 모든 예외를 catch 할 수 있습니다. ( –

+0

@Ed : 맞습니다. 서버 (로드 문제)에 오류가 발생했습니다. 이것은 런타임 예외입니다.이 예외를 프로그램 적으로 catch하는 방법은 무엇입니까? – Ravikanth

-1
try { 
      // a snippet resulting in Runtime Excception 
     } catch (Throwable e) { 
      e.printStackTrace(); 
      //Sys out or some logging 
     } 

이 방법으로 우리는 런타임 Excception를 처리 할 수 ​​있습니다.

+3

"Throwable"을 catch하는 것은 권장되지 않습니다. 또한 오류는 throwable이므로 jvm 문제를 식별하는 오류를 catch하면 안됩니다. 예외를 catch하십시오. – lemiorhan

+0

@otuzbesli 귀하의 조언에 감사드립니다. – chetan