9.자바 이상 메커니즘-소 백 대머리 사 10

이상
이상 한 개술
이상 은 정상 상태 와 다 르 고 오류 가 발생 하 는 것 이다.자바 에 서 는 현재 방법 이나 역할 영역 을 막 는 것 을 이상 이 라 고 합 니 다.
이상 한 체계
[외부 체인 이미지 저장 실패,원본 사이트 에 도 난 방지 체인 메커니즘 이 있 을 수 있 습 니 다.그림 을 저장 해서 직접 업로드 하 는 것 을 권장 합 니 다(img-rYV0Svta-1610097951596)(이상 한 시스템.jpg)]Error:심각 한 이상,처리 할 수 없습니다.예 를 들 어 하드웨어 문제 Exception:이상 류 라 고 하 는데 절차 자체 가 처리 할 수 있 는 문 제 를 표시 합 니 다.
  • Runtime Exception:컴 파일 기간 에 검사 하지 않 습 니 다.문제 가 발생 한 후에 저희 가 코드 를 수정 해 야 합 니 다
  • 비 Runtime Exception:컴 파일 기간 은 반드시 처리 해 야 합 니 다.그렇지 않 으 면 컴 파일 을 통과 할 수 없습니다
  • JVM 의 기본 처리 방안
    만약 프로그램 에 문제 가 생 겼 다 면,우 리 는 처리 하지 않 았 다 면,jvn 은 기본 처 리 를 할 것 이다.
    이상 명칭,이상 원인 과 이상 이 나타 난 위치 등 정 보 를 콘 솔 에 출력 합 니 다프로그램 실행 정지
    자체 처리 이상
    자바 프로그램 에서 기본 적 인 이상 처 리 는 전체 프로그램 을 정지 시 키 는 것 이지 만 실제 개발 에서 우리 가 원 하 는 것 은 이상 이 발생 한 후에 영향 을 주지 않 고 실행 할 수 있 기 때문에 스스로 이상 을 처리 해 야 합 니 다.자바 에서 이상 한 처리 방안 은 두 가지 가 있 습 니 다.
  • try…catch…
  • throws

  • try…catch…
    형식:
    try{
         
    	          
    } catch(        ){
         
    	       
    }
    

    실행 프로 세 스:프로그램 은 try 부터 실 행 됩 니 다.이상 이 발생 하면 자동 으로 이상 클래스 대상 이 생 성 됩 니 다.이 이상 대상 은 자바 가 실 행 될 때 시스템 에 제출 됩 니 다.자바 가 실 행 될 때 시스템 이 이상 을 받 으 면 catch 에서 일치 하 는 이상 류 를 찾 아 이상 한 처 리 를 하고 프로그램 은 계속 아래로 실행 할 수 있 습 니 다.
    public class Demo01 {
         
        public static void main(String[] args) {
         
            System.out.println("  ");
            method();
            System.out.println("  ");
        }
        public static void method(){
         
            int[] i = {
         1,2,3};
            try {
         
                System.out.println(i[3]);
            }catch (ArrayIndexOutOfBoundsException e){
         
                System.out.println("      ");
            }
        }
    }
    

    throws
    비록 우 리 는 try...catch 를 통 해 이상 을 처리 할 수 있 지만 모든 이상 을 처리 할 수 있 는 것 은 아 닙 니 다.자바 는 throws 의 처리 방안 형식 을 제공 합 니 다.방법 명()throws 이상 류 실행 절차:이 이상 은 잠시 상관 하지 않 습 니 다.누가 호출 하고 누가 처리 하 는 지.
    사용자 정의 이상
    자바 공식 적 으로 많은 이상 을 제 시 했 음 에 도 불구 하고 실제 개발 에 서 는 이러한 이상 이 턱 없 이 부족 합 니 다.예 를 들 어 점수 가 0-100 사이 여야 할 때 이상 처리 형식 을 정의 해 야 합 니 다.
    public class    extends Exception {
         
            
            
    }
    

    구체 적 인 실현:
    //      
    public class GradeException extends Exception {
         
        public GradeException() {
         
        }
    
        public GradeException(String message) {
         
            super(message);
        }
    }
    
    //   
    public class Grade {
         
        public void gread(int i) throws GradeException {
         
            if (i < 0 || i > 100){
         
                throw new GradeException();//        
                //throw new GradeException("    ");//       
            } else {
         
                System.out.println("    ");
            }
        }
    }
    
    //   
    public class GradeTest {
         
        public static void main(String[] args) {
         
            Scanner s = new Scanner(System.in);
            System.out.println("    :");
            int i = s.nextInt();
            Grade g = new Grade();
            try {
         
                g.gread(i);
            } catch (GradeException e) {
         
                e.printStackTrace();
                //System.out.println("    ");
            }
        }
    }
    

    좋은 웹페이지 즐겨찾기