JAVA 의 이상 처리 메커니즘 및 이상 분류

JAVA 의 이상 처리 메커니즘:어떤 방법 이 정상 적 인 경로 로 임 무 를 수행 하지 못 하면 다른 경 로 를 통 해 종료 할 수 있 습 니 다.이 경우 잘못된 정 보 를 봉 인 된 대상 을 던진다.이 방법 은 즉시 종료 되 며 값 을 되 돌려 주지 않 습 니 다.또한 이 방법 을 호출 한 다른 코드 도 계속 실행 할 수 없 으 며,이상 처리 체 제 는 코드 를 이상 처리 장치 에 전달 합 니 다.
1.이상 분 류 는 다음 과 같다.
–>Throwable 은 자바 언어 에서 모든 오류 나 이상 한 초 클래스 입 니 다.다음 층 은 Error 와 Exception–>Error 류 로 나 뉘 는데 자바 가 실 행 될 때 시스템 의 내부 오류 와 자원 소모 오 류 를 말 합 니 다.응용 프로그램 은 이러한 대상 을 던 지지 않 습 니 다.이러한 오류 가 발생 하면 사용자 에 게 알 리 는 것 외 에 나머지 는 프로그램 을 안전하게 종료 시 키 는 것 입 니 다.->Exception 에는 두 가지 가 있 습 니 다.하 나 는 Runtime Exception 이 고 하 나 는 Runtime Exception 입 니 다.예 를 들 어 I/O 오류 로 인 한 IOException 입 니 다.->Runtime Exception 은 자바 가상 컴퓨터 가 정상적으로 작 동 하 는 동안 던 질 수 있 는 이상 한 초 류 입 니 다.파생 Runtime Exception 의 이상 은 일반적으로 몇 가지 측면 을 포함 합 니 다.1.잘못된 형식 변환 2.배열 접근 경계 3.빈 포인터 에 Runtime Exception 이 나타 나 면 프로그래머 의 오류 가 발생 합 니 다.->Runtime Exception 이 아 닌 이상 은 보통 외부 오류 입 니 다.보통 몇 가지 측면 을 포함 합 니 다.1.파일 끝 에서 데 이 터 를 읽 으 려 고 합 니 다.2.잘못된 형식의 URL 3 을 열 려 고 합 니 다.주어진 문자열 에 따라 class 대상 을 찾 으 려 고 합 니 다.이 문자열 은 클래스 가 존재 하지 않 습 니 다–>JAVA 는 Error 와 Runtime Exception 류 에서 발생 하 는 모든 이상 을 검사 되 지 않 은 이상 이 라 고 합 니 다.모든 이상 을 검사 이상 이 라 고 합 니 다.
2.이상 한 처리 방식:
1.문제 가 발생 하면 구체 적 으로 처리 하지 않 고 계속 호출 자 에 게 이상 을 던 지 는 세 가지 형식 이 있 습 니 다.하 나 는 throw,하 나 는 throws 이 고 다른 하 나 는 시스템 자동 으로 이상 을 던 집 니 다.
//                 ,  throw     
public static void main(String[] args) { 
    String s = "abc"; 
    if(s.equals("abc")) { 
      throw new NumberFormatException(); 
    } else { 
      System.out.println(s); 
    } 
} 
int div(int a,int b) throws Exception{
return a/b;}
//        
public static void main(String[] args) { 
    int a = 5, b =0; 
    System.out.println(5/b); 
}

메모:Throw 와 throws 의 차이:1.위치 가 다 릅 니 다.throws 는 함수 에 사용 되 고 뒤 에는 이상 류 가 있 으 며 여러 개 를 따라 갈 수 있 습 니 다.throw 는 함수 에 사용 되 고 뒤 에는 이상 대상 을 따른다.2.기능 이 다 릅 니 다.throws 는 이상 을 설명 하고 호출 자가 이 기능 에 발생 할 수 있 는 문제 만 알 게 하 며 미리 처리 할 수 있 습 니 다.throw 는 구체 적 인 문제 대상 을 던 지고 throw 로 실행 하면 기능 이 끝 납 니 다.호출 자로 이동 하고 구체 적 인 문제 대상 을 호출 자 에 게 던 집 니 다.즉,throw 문 구 는 독립 적 으로 존재 할 때 다른 문 구 를 정의 하지 마 십시오.실행 할 수 없 기 때 문 입 니 다.3.throws 는 이상 이 발생 할 가능성 을 나타 내 는데 반드시 이러한 이상 이 발생 하 는 것 은 아니다.throw 는 이상 을 던 졌 고 throw 를 실행 하면 이상 한 대상 을 던 졌 을 것 이다.4.둘 다 이상 을 소극 적 으로 처리 하 는 방식 입 니 다.(여기 서 소극 적 으로 처리 하 는 것 은 이런 방식 이 좋 지 않다 는 것 이 아 닙 니 다.)이상 을 던 지 거나 던 질 수 있 지만 함수 에 의 해 이상 을 처리 하지 않 습 니 다.진정한 처리 이상 은 함수 의 상부 에서 호출 됩 니 다.2.맞 춤 형 처리 방식:이상 포착
Try{
//          
}
 Catch(      )
{
//        ,  
}
finally{
//         
}

3.Runtime Exception 과 Exception 의 차이
Runtime Exception:방법 을 정의 할 때 설명 이 필요 없 이 Runtime Exception 을 던 집 니 다.이 방법 을 호출 할 때 이 Runtime Exception 을 캡 처 할 필요 가 없습니다.한 마디 로 하면 이상 을 검사 하지 않 으 면 try..catch..또는 throws 메커니즘 으로 Exception 을 처리 할 필요 가 없습니다.방법 을 정의 할 때 던 질 수 있 는 모든 exception 을 설명해 야 합 니 다.이 방법 을 호출 할 때 checked exception 을 캡 처 해 야 합 니 다.그렇지 않 으 면 exception 을 전달 해 야 합 니 다.한 가지 방법 은 모든 검사 이상 을 밝 혀 야 합 니 다.이상 을 검사 하지 않 거나 제어 할 수 없 거나(Error)피해 야 합 니 다(Runtime Exception).만약 방법 이 발생 할 수 있 는 모든 검사 이상 을 설명 하지 않 으 면 컴 파일 러 는 오류 정 보 를 제공 할 것 이다.

좋은 웹페이지 즐겨찾기