2016-07-19 9 views
0
enter code here 
    `class Rethrow 
    { 
    public static void genException() 
    { 
     int n[]={4,8,16,32,64,128}; 
     int d[]={2,0,8,0,4}; 

     for(int i=0;i<n.length;i++) 
     {          
      try{ 
       System.out.println("n/d is:"+n[i]/d[i]); 

       } 
      catch(ArithmeticException exc) 
       { 
       System.out.println("Cant Divide By Zero"); 
       throw exc; 
       } 
      catch(ArrayIndexOutOfBoundsException exc) 
      { 
       System.out.println("No match element found "); 
       // rethrow the exception 
      } 
     } 
    } 
} 

class RethrowDemo 
{ 
    public static void main(String args[]) 
    { 
     try 
     { 
      Rethrow.genException(); 
     } 
     catch(ArithmeticException exc) // catch the rethrow Exception 
     { 
      // recatch exception 
      System.out.println("Fatal Error "+"Program Termiated."); 
     } 
    } 
} 

this is output of programrethrow 예외는 어떻게 외부 catch에 의해 종료됩니까?

질문 1 : 왜 "RethrowDemo"CLASS의 캐치는 "다시 던진다"클래스의 캐치 (산술 예외)에 의해 던져진 예외를 종료 않습니다.

질문 2 : 제어 작업이 어떻게 작동합니까 ?? 이벤트가이 Exception 객체 생성 애플리케이션의 정상 흐름을 방해하고 어느 호출자에 의해 처리 될 수있는 호출 스택을 통과하거나 더 처리되기 위해 전달 발생

자바
+3

코드를 포맷하십시오. 그것이 그대로 블록을 올바르게 볼 수 없으므로 도움이되지 않습니다. – Thomas

+0

자세한 내용은 오류 로그를 공유하십시오. – Ajit

+4

질문 할 때 유용한 정보가 담긴 큰 오렌지색 ** 서식 지정 방법 ** 상자가 텍스트 영역 오른쪽에있었습니다. 또한 형식 지정 도구 모음 전체가있었습니다. 그리고 ** [?] ** 버튼은 포맷 도움을줍니다. * 그리고 * 텍스트 영역과 질문 게시 버튼 사이에있는 미리보기 영역 (버튼을 찾으려면 스크롤하여 게시자가 보도록 유도해야 함) 게시 할 때의 게시물 모양을 보여주는 미리보기 영역 . 게시물을 분명하게하고 시간을 할애 한 것을 보여줌으로써 좋은 답변을 얻을 수있는 가능성을 높입니다. –

답변

0

,/계층 구조에서 상위에있는 다른 것으로 처리됩니다. 사실 당신이 제로 ArithmeticException으로 나눌 수 없습니다 인해

라인 System.out.println("n/d is:"+n[i]/d[i]);에서 발생합니다 그리고 당신은 try...catch 블록 내에서이 일을하고 있기 때문에, 당신의 catch(ArithmeticException exc) 다음 try 내에서 던져진 ArithmeticException가있는 경우 "라고 나는 그것을 다루기 위해왔다. "

catch 블록에 Cant Divide By Zero을 인쇄하고 원본 예외를 다시 던집니다. 이것은 main 메쏘드로 당신의 호출 메소드를 호출합니다. 그러나 try...catch(ArithmeticException exc)에서 catchmain에 전화를 걸어서 "다시 던져 준 ArithmeticException을 다룰 것입니다"라고 말합니다. 이 시점에서 Fatal Error Program Termiated을 인쇄하면 응용 프로그램이 종료됩니다.

Java에서 예외가 작동하는 방식을 완전히 설명하는 자습서가 많이 있으므로 몇 가지를 살펴 보는 것이 좋습니다.

A Tutorial on Exceptions

Another Tutorial on Exceptions

+0

설명을위한 thk !! –

+0

반갑습니다. 이 질문에 대한 답변을 생각하시는 분은 수락을 고려하십시오. :) – kstandell