JAVA 예외 처리(에세이)

6315 단어 JAVARudiment

예외 처리


이상은 방법에서 던져진다.방법 호출자는 이 이상을 포획하고 처리할 수 있다.(방법을 종료시키지 말고 호출자가 종료 여부를 결정해야 한다)throw 문장의 실행을'이상 던지기(throw an exception)'라고 하는데 이상은 이상 클래스에서 만든 대상이다.이상류는 바로java입니다.lang.Arithmetic Exception//산술 이상, 그리고 기타 이상 클래스.구성 방법ArithmeticException(str)이 비정상적인 대상을 구축하는 데 호출되었습니다.str는 비정상적인 정보를 설명합니다.
try{
    code to run;
    A statement or amethod that may throw an exception;
    More code to run;
} // 
catch(type ex){
    code to process the exception;
} // catch ,catch 
// ,catch , throw throw 


throw 문구로 이상을 던지지 않을 수도 있지만,catch의 매개 변수는try 블록에 나타날 수 있는 이상 형식 (예를 들어 인덱스 형식의 정수를 입력해야 하지만, 더블 형식을 입력해야 한다면,catch 문구의 매개 변수는 (Input Mismatch Exception ex) 이고, 일치하지 않는 이상) 이상은 대상이며, 대상은 클래스로 정의됩니다.이상 루트는java입니다.lang.Throwable.
Object - Throwable - Exception - ClassNotFoundException
                               - IOException
                               - RuntimeException - ArithmeticException
                                                  - NullPointerException
                                                  - IndexOutOfBoundsException
                                                  - IllegalArgumentException
                                                  -  
                   - Error     - LinkageError
                   			   - VirtualMachineError
                               -  
                               

//던진 이상은 모두 이 그림에서 클래스를 제시한 실례나 하위 클래스의 실례이다.Exception이나 하위 클래스를 계승하여 자신의 이상 클래스 이상 클래스를 만들 수 있는 세 가지 주요 유형: 1) 시스템 오류(system error)는 자바 가상 기기에서 던져지고 Error 클래스로 표시됩니다.Error 클래스는 내부 시스템 오류를 설명합니다. 만약에 발생하면 사용자에게 알리고 가능한 한 안전한 종료 프로그램 2) 이상(exception)은 Exception 클래스가 표시하는 예입니다.ClassNotFoundException: 존재하지 않는 클래스를 사용하려고 시도합니다.IOException: 입력/출력과 관련된 작업, 예를 들어 잘못된 입력, 읽기 파일이 끝 3을 초과할 때 이상(runtime exception)이 실행될 때 런타임 Exception 클래스로 표시되는 프로그램 설계 오류, 예를 들어 오류 형식 변환, 경계를 넘는 그룹 접근 오류 예: Arithmetic Exception: 정수를 0으로 나눈다.주: 부동점수의 산술 연산은 이상을 던지지 않습니다 NullPointer Exception:null 인용 변수를 통해 대상에 접근하려고 시도합니다. 인덱스 Out Of Bounds Exception: 그룹 아래 표시가 범위를 초과합니다. Illagal Argument Exception: 방법에 전달된 파라미터가 불법적이거나 적합하지 않은 이상 처리기는 현재 방법에서 시작하여 방법에 따라 체인을 호출하여 이상한 역방향 전파 방향으로 찾을 수 있습니다.Java 예외 처리는 예외 선언, 예외 제거, 캡처 예외 1) 예외 선언 각 메소드는 예외 선언 가능한 필수 검사 예외 유형을 선언합니다. 그러면 호출자는 예외가 있음을 알립니다. public void my Method () throws Exception 1, Exception2,..., ExceptionN 참고: 상위 클래스 메소드가 예외를 선언하지 않은 경우하위 클래스를 다시 쓸 때 이상 2를 명시할 수 없음) 이상을 던져서 적합한 이상 유형의 실례를 만들고 Illegal Argument Exception ex = new Illegal Argument Exception ("Wrong Argument") 을 던져라 함throw ex; 또는 throw new Illegal Argument Exception("Wrong Argument");//javaapi에서 모든 이상 클래스는 최소한 두 가지 구조 방법이 있는데 하나는 무참이고 하나는 유참이다.이 매개 변수는 예외 메시지입니다. 예외 대상에서 getMessage () 를 호출해서 얻을 수 있습니다.3) 이상try 블록 코드를 포획하여 이상을 던지고 자바는 현재 방법부터 방법에 따라 체인을 호출하여 이상 역방향 전파 방향에 따라catch 블록을 하나하나 검사하고catch 블록의 이상 실례가 이 이상 대상의 유형과 일치하는지 판단한다.호출된 방법 체인에서 이상 프로세서 (catch 블록) 를 찾지 못하면 프로그램이 종료되고 컨트롤에서 오류 정보를 출력합니다.주의: 만약catch 블록이 부류의 이상 대상을 포착할 수 있다면, 부류의 모든 부류의 이상 대상을 포착할 수 있습니다.또한catch 블록 이상이 지정된 순서가 매우 중요합니다. 부류catch 블록이 하위 클래스catch 블록에 나타나기 전에 컴파일 오류가 발생할 수 있습니다.예를 들어 catch(RuntimeException ex) {} catch(Exception ex) {} 방법이 반드시 검사해야 할 이상을 성명하면try-catch 블록에서 호출해야 하거나 호출 방법에서 던질 이상을 성명해야 한다. 예를 들어 방법p1 호출 방법p2와 같이 p2는 반드시 검사해야 할 이상(IOExecption)voidp1() {voidp1()throws IOException {try {p2()}을 던진다.또는 p2();catch(IOExecption ex) {...} JDK7 다중 캡처 피쳐 단순화 예외 코드 작성 catch(Exception 1 | Exception 2 | Exception 3 |...| Exception N) {...}
                    java.lang.Throwable( )
+getMessage(): String                  // 
+toString(): String                    // :1. ;2.“: ” + ;3.getMessage() 
+printStackTrace(): void               // Throwable 
+getStackTrace(): StackTraceElement[]  // , 


finally 자구는 이상이 발생하거나 포획되든지 상관없이finally 자구가 언제 이상을 사용하는지 실행합니다. 오류가 방법의 호출자가 처리해야 할 때 방법은 이상을 던져야 합니다.이상 처리는 호출 창고를 되돌려야 하고 새로운 이상 대상을 초기화해야 하며 더 많은 시간과 자원을 들여야 한다.한 프로젝트에서 여러 종류가 모두 발생하는 공통적인 이상은 반드시 하나의 이상류를 설계하는 것을 고려해야 한다.간단한 오류는 국부적으로 처리하고 이상을 던질 필요가 없다.

좋은 웹페이지 즐겨찾기