java 예외 처리 throw new RuntimeException (e)

4213 단어 java 기초

1.javatry catch 예외 후에도 계속 실행됩니까?


catch에서 이상을 던지지 않으면 catch 이후의 코드는 계속 실행할 수 있지만,try에서 잘못 보고된 줄 코드 이후try가 끝날 때까지 이 코드는 다시 실행되지 않습니다.
//  1
public static void test() throws Exception  {

    throw new Exception("    "); 
    System.out.println("   "); //    ,「       」
}

만약 코드 앞에 이상이 발생했고, 이 이상이 포착되지 않았다면, 이 코드는 컴파일할 때 '접근할 수 없는 문장' 오류가 발생할 것입니다.예를 들어 코드 1;
//  2
try{
    throw new Exception("    "); 
}catch(Exception e) {
    e.printStackTrace();
}
System.out.println("   ");//    

만약 코드 앞에 이상한 버퍼링이 있고 이 이상이try...catch에 포착된다면,catch 문장에 새로운 이상이 버퍼링되지 않으면 이 코드는 실행될 수 있습니다. 그렇지 않으면 제1조와 같습니다.예를 들어 코드 2;
//  3
if(true) {
    throw new Exception("    "); 
}
System.out.println("   "); //    ,    

조건 문장에서 이상을 던지면 프로그램은 컴파일될 수 있지만, 다음 문장은 실행되지 않습니다.코드 3
요약:
  • 만약에 코드 앞에 이상이 생겼고 이 이상이 포착되지 않았다면 이 코드는 컴파일할 때'접근할 수 없는 문장'오류가 발생할 것이다.예를 들어 코드 1;
  • 코드 앞에 이상 투매가 있고 이 이상은try...catch에 포착됩니다. 이때catch 문장에 새로운 이상이 투매되지 않으면 이 코드는 실행될 수 있습니다. 그렇지 않으면 제1조와 같습니다.예를 들어 코드 2;
  • 조건 문장에서 이상을 던지면 프로그램은 컴파일될 수 있지만 다음 문장은 실행되지 않습니다.예: 코드 3
  • 2.throw new RuntimeException("",e)

  • e.printStackTrace()는 인쇄 예외 스택 정보
  • 입니다.
  • throw new Runtime Exception(e)는 비정상 패키지를 실행할 때 비정상적으로 던집니다.
  • e.printStackTrace();실제 개발할 때 의미가 크지 않다. 배치 이후 컨트롤러를 보는 사람이 없기 때문에 이 문장은 로그를 기록하는 코드로 대체되는 경우가 많다.

  • throw new Runtime Exception은 이상을 계속 던지거나 상부의 방법으로 해결하거나 프로그램 실행을 중지합니다. 예를 들어 초기화가 제대로 완료되지 않으면 계속 실행할 필요가 없습니다.
    try{
    
        ....
    
    }
    catch(Exception e){
        e.printStackTrace( );
        throw new RuntimeException(e);
    }

    이것은 더 이상 처리할 수 없는 이상을 처리하는 일반적인 방법이다.try 블록에 이상이 발생했습니다. 이것은catch에 의해 잡혔습니다. 우선 표준 출력에 이상을 출력해야 합니다. 그러나throw가 없으면 이 오류는catch 블록에 조용히 먹히고 프로그램은 계속 실행됩니다.
    하지만 이럴 때는 프로그램의 상태가 틀렸을 가능성이 높다. 계속해도 의미가 없기 때문에 이 이상을 계속 던져야 한다.너는 당연히 throw e를 쓸 수 있다.그러나 이 e는 일반적인 이상입니다. 이렇게 던지면 이 함수 헤더에throws로 설명해야 합니다. 예를 들어public void abc ()throws Exception 다음에 이 함수를 호출하는 함수도 이렇게 해야 하기 때문에 일반적인 처리는 e를 실행할 때 이상으로 포장하는 것입니다.
    함수 헤더에 선언할 필요가 없는 new RuntimeException (e)그러나 이것은 일반적인 처리 방법일 뿐 실제 절차에서 실제 상황과 수요를 고려하지 않고 억지로 해서는 안 된다.

    예.

    /**
        * @throws Exception 
        *          method:  :   method    2   。
        * 1.          。(n = n/m;)
        * 2.             ,       。(throw new Exception("m   9");)
        * *  :     throw new Exception("m   9");       。
        *       main    try-catch           ,               。( :n=n/m    )
        * *   :
        *        ,      'throw new Exception();'    catch   'throw e;'  。
        *            method             ,             。
        *        ,  ,   'throw new Exception();' 'throw e;'  ,                。
        */
    public int method() throws Exception{
             int n = 100;
             int m = 10;
             while(m>-1){
                m--;
                n = n/m;//***       0     
                try {
                    if(m==9){
                       throw new Exception("m   9");//***      Exception  '  '.
                     }
                } catch (Exception e) {
                    // TODO: handle exception
                   System.out.println("         “  ”:throw new Exception('m   9')    。");
                   e.printStackTrace();
                   //throw e;  throw new Exception();//***    e     Exception  
                }
             }     
            return n;
        }
    }

    요약:


       1.throws는 이상을 던지는 방법입니다.예: public int method () throws Exception {//code....}


    a. 방법체에 이상이 있으면try-catch를 사용하여 이상을 포획하고 처리하면 방법은 이상을 던지지 않습니다.
    b. 만약에 방법체에 이상(예를 들어 산술 이상)이 있고 포획하고 처리하지 않은 경우.이 방법은 방법체 중의 이상을 던진다.
    c. 메소드에서'throw new Exception()'을 사용하는 경우문장은 새로운 Exception 실례를 던진다.방법체에 이런 이상이 하나 더 생기는 것이고,
    방법이 던진 것은 이 문장이 이상하다는 것이다.
    d. 만약에 방법체에서 이상을 포획했지만 처리하지 않았고catch에서'throw e;'를 사용한다면문장이 이상을 던지면 방법이 던진try의 이상을 던진다.
        

       2.throw는 문장 던지기 이상입니다.


    //*** 예외 e 인스턴스 또는 새 Exception 인스턴스 던지기
    a.catch의throw e;
    b. 메서드의 throw new Exception();
    한 마디로 하면 이들의 역할은 간단하게 이상을 던지는 것이다.
     

    좋은 웹페이지 즐겨찾기