실행하는 Java 프로그램의 비정상적인 현상을 실행 오류라고합니다. 그 성격에 따르면, 그것은 두 가지 범주로 나눌 수 있습니다 : 오류 (오류)와 예외 (예외); 공통 상위 클래스 (모든 예외의 최상위 부모 클래스)가 있습니다.
예외 클래스 구조
오류
오류는 JVM에 의해 생성되며 처리없이 포기됩니다. 이러한 오류는 일반적으로 코드 및 실행 된 작업과 관련이 없으며 가상 시스템에서 비교적 심각한 문제이며 프로그램 자체에 의해 해결할 수 없습니다 (일반적인 오류에는 죽은 루프, 메모리 누출 등).
일반적인 오류는 Java Virtual Machine 오류 (VirtualMachineError)입니다. JVM에 더 이상 작동을 계속하는 데 필요한 메모리 리소스가 없으면 OutofMemoryError가 나타납니다. 이러한 예외가 발생하면 JVM (Java Virtual Machine)은 일반적으로 스레드를 종료하기로 선택합니다.
예외
예외는 물체로 사용되며 Java 프로그램에 의해 폐기되거나 처리됩니다. 일반적으로 예외의 원인은 다음과 같습니다. 코드 또는 호출 코드는 부정확하고 운영 체제 리소스를 사용할 수 없으며 일반적인 언어 런타임 라이브러리는 사고에 직면합니다.
예외는 가상 머신 (Null Pointers, Array of Bounds) 및 프로그램 사고 (예 : IOException)로 인한 비 런타임 예외에 의해 생성 된 런타임 예외로 나뉩니다.
런타임 예외 : 프로그램은 처리없이 직접 캡처하고 처리하거나 던질 수 있습니다. 일반적인 런타임 예외에는 알고리즘 오버 플로우 (수치 표현 범위 초과), 디바이저는 0, 메모리 오버플로, 널 포인터, 유효하지 않은 매개 변수 등이 포함됩니다. 이러한 예외는 프로그램 자체의 프로그래밍 오류입니다. 예외 코드의 실행 방향을 조정하여 프로그램이 정상적으로 끝날 때까지 프로그램을 계속 실행할 수 있습니다.
비 런타임 예외 : runtimeexception 유형의 예상치 못한 예외를 unruntime 예외라고합니다. 프로그램 구문의 관점에서, 그것들은 처리 해야하는 예외입니다. 처리되지 않으면 프로그램을 편집하고 통과 할 수 없습니다. 일반적인 비 런타임 예외에는 다음과 같은 IOException이 포함됩니다. 리소스 파일을 찾을 수 없습니다. 이는 예기치 않은 상황을 만날 때 프로그램이 성공적으로 실행할 수 없음을 의미합니다.
참고 : 예외와 오류의 차이점은 프로그램 자체에 의해 예외를 처리 할 수 있지만 오류를 처리 할 수는 없습니다.
검사 가능한 예외 및 점검 가능한 예외가 아닙니다
Java 예외 (Errorandexceptions)는 프로그램을 컴파일하고 통과 할 수 있는지 여부에 따라 다른 두 범주로 나눌 수 있습니다. 확인 된 예외 및 확인되지 않은 예외는 예외입니다.
예외를 확인할 수 있습니다
예외를 확인할 수 있습니다. 런타임이 아닌 예외에 해당하는 컴파일러는 프로그램을 컴파일 할 때 예상 오류를 확인할 수 있습니다. 이 예외는 처리되어야합니다. 이를 처리하는 방법에는 두 가지가 있습니다. Try-Catch 문은 예외를 포착하거나 THROWS 조항은 예외를 던지는 것을 선언하고 예외 유형은 메소드 헤더 외부에서 선언되며 (Throws Exception 사용) 발신자는 수신 된 예외를 처리하도록 선택할 수 있습니다.
이 두 가지 처리 방법에 대해 말하면, 우리는 Java 예외 처리의 5 가지 키워드에 대해 이야기해야합니다. 시도, 잡기, 마지막으로 던지기, 던지기
1. Try-Catch 문을 사용하여 처리 캡처 (메소드 헤더를 선언 할 필요가 없습니다).
시도, 캐치의 세 가지 진술 블록은 마침내 혼자서 나타날 수 없습니다. 세 가지는 Try-Catch/Try-Catch-Finally/Try-Finally로 결합 할 수 있습니다.
여러 캐치 블록이있을 수 있으며 현재 캐치 블록 코드 중 하나는 위에서 아래로 만 일치 할 수 있습니다.
마지막으로, 최대 하나의 변수는 3 개의 명령문 블록에서 서로 액세스 할 수 없습니다.
이 섹션에서 Try-Catch 조합은 점검 가능한 예외를 처리하는 데 사용되어 예외를 위쪽으로 던지는 예입니다.
public xmlreaderhdu (String xmlfile) {super (); this.xmlfile = xmlfile; this.filename = staticconfig.umlpathprefixhdu; try {saxReader reader = new SaxReader (); document dom = reader.read (xmlfile); root = dom.getRootElement ();} catch (예외 e1) {handle1…} catch (예외 e2) {hand…}}2. Throws 절을 사용하여 던지기를 선언합니다 (방법 본문 외부의 헤드에서 예외 유형 선언 : throws를 사용하여 예외를 던지십시오)
먼저, 방법 본문 내부를 사용하여 예외를 던지십시오.
그런 다음이 방법은 헤드 외부로 선언되어 던지기를 사용하여 내부에 던져진 예외를 던졌습니다.
예 1 : Try-Catch는 예외를 던졌습니다
public xmlreaderhdu (String xmlfile)는 예외 {super (); this.xmlfile = xmlfile; this.filename = staticconfig.umlpathprefixhdu; try {saxReader reader = new SaxReader (); document dom = reader.read (xmlfile); root = dom.getRootElement ();} catch (Exception e1) {new exception (e1);}}예제 2 : 던지기 사용자 정의 예외
개인 목록 <usecase> readucinformation ()은 예외를 {if (e1.hascontent ()) {if (e1.element ( "name"). getText (). equals ( "precondition")) {uc.setprecondition (e1.elementtext ( "content"); 오류 ");}}}예외를 확인할 수 없습니다
확인할 수없는 예외 : 오류 오류 및 런타임 예외 런 티미 픽스를 포함합니다
프로그램 컴파일 중에 런타임 예외는 전달 될 수 있습니다. 기능이 예외를 던질 수있는 정적 구문을 통해 감지 할 수 없습니다. 예외가 발견 될 때만 (즉, 런타임 상태에 따라 런타임 상태에 따라 결정됩니다);
처리 또는 디스플레이를 캡처하도록 선택할 수 있습니다 (MustBecauredDeclearEdToBethrown). 이러한 예외는 일반적으로 프로그램 논리 오류로 인해 발생하며 프로그램은 논리적 관점에서 가능한 한 많은 예외를 피해야합니다.
요약
위의 것은이 기사의 Java 예외에 대한 기본 지식 분석에 관한 것입니다. 모든 사람에게 도움이되기를 바랍니다. 관심있는 친구는이 사이트의 다른 관련 주제를 계속 참조 할 수 있습니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!