예외 클래스를 사용하여

이상

의 Throwable

오류

  • 정의 :
    악성 회복 할 수없는 에러가 단지 오류를 방지하기위한 코드를 수정하여, 시스템 레벨
    예 : 배열 INT는 [] 도착 = 새로운 INT [정의 ] 1024 * 1024 * 1024]
    의 경우보고 된 메모리 오버 플로우 예외 인 java.lang. 이 예외를 피하려는 경우 OutOfMemoryError가 시스템과 관련이 이상은, 소스 코드 만의 방법에 의해 변경 될 수 있습니다

예외

  • 정의 :
    수리 양성 이상은 프로그래머 (소스 코드를 변경하지 않고 시도 캐치 처리) 정정 코드에 의해 정정 될 수 있기 때문에, 프로그램의 정상적인 작동

컴파일 할 때 예외 : 예외를 선택하면

  • 상속 예외 클래스, 예외가 발생하고 컴파일 시간, 당신은 캐치 처리, 처리를 시도하거나 던질 필요 예외가 주요 방법들로 던져 질 것이다있다, 가상 머신의 처리를 JVM에 언급

런타임 예외 : 런타임 예외

  • RuntimeException의 클래스, 예외 서브 클래스, 컴파일 시간 버리지 런타임 예외가 발생합니다

이상 키워드

던지다

  • 던져 메소드 본문에서
    예외가 방법을 몸에 이상이 컴파일 발생 된 경우, 이상은 메소드 선언에 던져 {} 캐치 () {} 처리 또는 처리 발생을 시도해야

발생

  • 상기 방법은 예외가 발생 문에서
    예외 복수 이상과 함께 발생 될 수있다, 쉼표로 구분하여, 부모 자식 관계 방법 체 상위에 발생 예외를 발생 나 비정상

} {마지막} {잡기 {} 시도

  • } {시도
    배치 문 예외가 발생할 수있다

  • 캐치 (객체를 수신 예외) {}
    1. 캐치 (Eeception E는) {
      // 이상 발생 처리를 행하는 통상 기록 / 인쇄 예외 정보 / 동작이 연속적으로 발생하지
      }
    2. 캐치 () {} 처리 원리 :
      문 먼저 수신 된 예외가 발생한 예외 객체를 시도하여, 발생한 예외 객체를 발생할 수있는 이상을 시도하고, {}, 적절한 치료를하게
  • 마지막으로 {}
    최종적으로 {}, 장소를 반환 할 경우 문이 실행됩니다 폐쇄에 대한 자원의 일반적인 작업은 다음 방법은 반환 값은 마지막으로 항상 반환

3 가지 방법 예외 트래핑

  • 포착 예외의 세 가지
    복수 1. 예외는 처리 하였다
    은 try {
    } 캐치 () {
    }
    은 try {
    } 캐치 () {
    }
    은 try {
    } 캐치 () {
    }
    예외, 캐치는에 대응하려고
    이상 (2)의 복수 일단, 처리는 복수의 촬상
    시도 {
    } 캐치 () {
    } 캐치 () {
    }
    {) 캐치 (
    }
    이상 복수 캡처 시도 멀티 캐치 복수되어야
    주목 : 발생 될 수있는 시도가 자식으로서 동안 때 이상 상위 클래스 캐치 주목 비정상적인 위치 관계를 서브 클래스 심볼
    서브 클래스의 캐치가 부모 이상 위에 배치되어야 할 때
    이유 : 예외가 시도 상위 클래스에서 발생할 때 서브 클래스의 오브젝트를 수신 할 수없는
    이상이 호를 시도 발생시 그것은 부모 클래스 객체가 수신하는데 사용될 수있다
    다중 상태 만 업 캐스팅 서브 오브젝트의 부모 오브젝트는 서브 오브젝트 할당)

    3. 이상 복수의 일단 캡처, 하나 개의 프로세스
    은 try {
    } 캐치 () {
    }
    공통의 부모 이상에서 발생 될 수있는 시도

JVM 가상 머신은 비정상적인 움직임을 감지하는

  • 이상을 검출하기위한 일반적인 JVM 가상 머신 생체 방법
  1. 예외 객체 예외 객체의 컨텐츠를 생성 (예외 정보 : 즉 비정상적인 패키지 이름, 클래스 이름, 이상 원인, 비정상적인 위치)
  2. catch 문이 시도의 방법은 예외가 발생하면 따라 잡을 시도와 어떤 계약이없는 경우, catch 문 이상한 문장이 발생하는 경우, 예외 객체가 메소드 호출, 시도 캐치 프로세스를 이동하는 방법에 생성, 실행 시도 주요 방법까지 발생 던져 예외 객체는 JVM 가상 기계 가공이라
  • JVM 가상 머신 주요 방법에서 비정상 수신
  1. 예외 객체는 빨간색으로 콘솔에 인쇄
  2. 정지 프로그램 실행

부모 클래스 상속 이상 아이

  • 서브 클래스와 슈퍼 클래스는 같은 예외를 발생하거나 비정상적인 서브 클래스는 부모 클래스를 상속하거나 예외가 발생하지
    않습니다 : 서브 클래스는 다음을 수행 할 수있는 서브 클래스를 던진 클래스를 상속하는 경우 몇 가지 행동
  1. 같은 예외 상위 클래스를 던져
  2. 슬로우 부모의 서브 클래스
  3. Nothrow
  4. 예외 클래스 던질 수있는 다른 비 부모
    , 하나 던져하지 않는 부모 또는 부모 비정상적인 이상 서브 클래스를 던져에만 던져

이상 사용

상기 방법의 사용은 일반적으로 파라미터 파라미터 에러를 정의 통과해야 할 때 프로그램 개발, 사용자가 준수 전달 된 파라미터를 결정하는 경우, 비어

() 객체를 사용 RequireNonNull 정적있어서, 상기 방법은 파라미터 객체가 널인지의 여부를 판정한다

Object.RequireNonNull (객체) // 객체가 비어있는 경우 NullPointException을 던져 ()

   底层:判断对象是否为空,若为空,抛出一个NIullPointException,不为空,返回一个对象

오버로드 방법 : RequireNonNull 객체가 비어있는 경우 (OBJ, 비정상적인 이유) // (이상)을 NullPointException를 던져

의 Throwable 방법 3

문자열되어 getMesage () // 이상 인쇄

문자열 toString () // 인쇄 비정상적인 패키지 이름. 이상 클래스 명 +

                                catch中捕获的异常对象 Exception e 打印 e时调用的就是      toString()方法

문자열 prinitStackTrance () // 인쇄 비정상적인 패키지 이름. 이상 클래스 이름 + + 비정상적인 위치

                                  控制台打印调用的就是printStackTrance()方法

사용자 정의 예외 클래스

  • 단계
    1. 실현 예외
      가 예외가 본질을 잃어,의 Throwable을 던질 수있는 자연이 시스템의 독특한 기능은,이 던질 수하기 위해 클래스의 유일한 시스템이며, 발생하다
    2. 이상 정보를 정의하는
      두 생성자 :
      널 생성자
      XxxException () {
      슈퍼 ()
      }
      이상 정보 생성자 파라미터
      XxxException (메시지) {
      // 생성자 만찬에 사용될 디스플레이 (이상 정보 ), 이상 정보로 전송된다
      ) 수퍼 (메시지
      }

    3. 사용
      가능한 예외에 이상이 나타날 수 있습니다 문에 던져 던져에 의해
      이상을 컴파일 할 때 발생한 예외 :
      비정상적인 문을 시도하고 치료의 캐치 방법에 발생할 수있는 필요, 또는 방법의 문은 예외를 throw
      발생하는 경우 이상은 비정상적인 런타임입니다 :
      사용하지 않을 때는 특별 대우, 프로 시저 호출, JVM 가상 시스템이 자동으로 식별

      • 사용자 정의 컴파일 시간 이상
        / **
        • 사용자 정의 예외 클래스
          * /
          (가) 예외 {확장 ExceptionTest01 공용 클래스
          개인 int 값을,
          공공 ExceptionTest01 () {
          슈퍼 ();
          }
          공공 ExceptionTest01 (문자열 MSG, int 값) {
          부모 클래스 MSG에 전달 // 사용자 정의 예외 정보 생성자
          슈퍼 (MSG)
          this.value = 값;
          }
          getValue () {INT 공개
          리턴 값;
          }
          }
          공용 클래스 ExceptionTest02 {
          공공 정적 무효 메인 (문자열 []에 args) ExceptionTest01를 슬로우 {
          (I = div에에서 INT 1 -. 1);

          }

          / **
          • 문 던져에서 사용자 정의 컴파일 시간 예외가 선언되어야하는 방법에 던졌습니다
          • 파라미터 :
          • 파라미터 : B
          • @반환
          • ExceptionTest01 @throws
            * /
            공용 정적 INT의 DIV (A INT, INT의 B)는 {ExceptionTest01 발생
            IF가 (B는 <0) {
            장정 // throw 키워드, (B '제수 음수납니다 ") 새로운 새 ExceptionTest01 던져 사용자 정의 예외 객체를 throw합니다.
            }
            반환 A / B;
            }
            이상 실행 사용자 정의
            이 RuntimeException을 확장 NoScoreException 공용 클래스 {
            // null 인수 생성자
            공공 NoScoreException () {
            ; 슈퍼 ()
            }
            [매개 변수가 구성한 //
            공공 NoScoreException (문자열 메시지) {
            슈퍼 (메시지);
            }
            }
            공용 클래스 학생 {
            개인 문자열 이름;
            개인 INT 점수;
            // null 인수 생성자
            공개 학생 () {
            ; 슈퍼 ()
            }
            참조 구성을 제공 // C);
            // 나는 방법은 이름과 점수를 할당하는 데 사용하는 setXXX.
            공공 학생 (문자열 이름, INT 점수) {
            에서는 setName (이름)
            setScore (점수);
            }
            // D) 세터와 게터 방법을 제공

            공공 문자열 getName () {
            반환 이름;
            }

            공공 무효에서는 setName (문자열 이름) {
            this.name = 이름;
            }

            INT getScore 공공 () {
            반환 점수;
            }
            . // I setScore (INT 점수) 방법
            공개 무효 setScore (INT 점수) {
            // 1. 먼저, 점수가 마이너스 인 경우가 발생 NoScoreException, 예외 정보를 확인 : XXX : 일부는 음수가 될 수 없습니다.
            (점수는 <0) {경우
            던져 새로운 새로운 NoScoreException ( "부정적인 점수 :"+ 점수);
            }
            . 2.이 // 점수가 후 회원에 할당 된
            = 점수를 this.score;
            }
            }

추천

출처www.cnblogs.com/Auge/p/11317305.html