프로그램에는 항상 다양한 문제가 있습니다. 프로그램 실행 중 정상 작동을 가능하게하기 위해 Java가 제공하는 예외 처리 메커니즘은 가능한 예외를 포착하고 예외를 처리하며 프로그램을 정상적으로 실행할 수 있도록하는 데 사용됩니다. 이것은 Java 예외 처리입니다.
1. 잡을 수있는 예외
Java에서 잡을 수있는 예외는 제어 가능 및 런타임 예외로 나뉩니다.
1. 제어 가능한 예외
Java에서는 프로그램 편집 중에 예측 가능한 오류를 처리 할 수 있으며 특정 오류 정보가 제공 될 수 있습니다. 이러한 오류를 제어 가능한 예외라고합니다. 일반적으로 사용되는 제어 가능한 예외는 다음과 같습니다.
예외 설명 IOException 일부 I/O 예외가 발생하면이 예외가 발생합니다. sqlexception은 데이터베이스 액세스 오류 또는 기타 오류에 대한 정보를 제공합니다. classNotFoundException. 예외는 찾을 수 없습니다. NosuchfieldException. 클래스에 이름이 지정된 필드가 포함되어 있지 않을 때 생성 된 신호. nosuchmethodexception. 예외가 발생합니다.
2. 런타임 예외
Java의 컴파일러에서 감지 할 수없는 오류를 런타임 예외라고합니다. 일반적인 런타임 예외는 다음과 같습니다.
exception exceptofboundsexception은 컬렉션 또는 배열의 인덱스 값이 범위를 벗어나지 않을 때 예외가 발생 함을 나타냅니다. NullPointerException은 객체가 필요할 때 NULL을 사용하려고 시도 할 때 예외가 발생할 때 예외가 발생할 때 예외적 인 조건이 불법적 인 예외를 제외 할 때 예외 또는 틀려지는 예외를 나타내는 예외를 제외 할 때이 예외를 제외 할 때이 예외를 던질 때 예외를 제외합니다. 인스턴스가 아닌 서브 클래스에 반대합니다
2. 예외를 처리합니다
Java에서 예외가 발생하면 시도 시도 ... 캐치, 시도 ... 마침내 ... 마침내 시도해보십시오 ... 마지막으로 처리 할 수 있습니다.
1. 시도해보십시오 .... 예외를 처리하려면 어획량을 잡으십시오
시도한 후에는 정상적으로 실행되는 진술이 있으며 캐치 후에는 예외를 처리하는 진술이 있습니다. 캐치의 괄호는 프로그램이 처리 해야하는 예외 유형입니다. 구문 형식은 다음과 같습니다.
{정상적으로 실행하는 문장} catch (예외 e) {예외를 처리하는 문장}을 시도하십시오.다음은 산술 예외의 예입니다.
공개 클래스 ExceptionTest {public static void main (String [] args) {int result = 1 / 0; try {system.out.println (결과); } catch (예외 e) {System.out.println ( "Throw Exception :" + e.getMessage ()); }}}여기서 1/0은 제수가 0이 될 수 없기 때문에 예외 알고리즘입니다. 작동 결과는 다음과 같습니다.
예외가 있기 때문에 시도 후 명령문이 실행되지 않으므로 캐치 후 명령문이 실행됩니다. 그중 "e.getMessage ()"는 예외 정보를 얻는 방법이며, 이는 상세한 메시지 문자열을 얻는 데 사용됩니다. 또한 PrintStackTrace () 메소드도 있으며 스택 추적을 표준 오류 스트림으로 출력하는 데 사용됩니다. 그리고 toString () 메소드는 간단한 설명을 얻는 데 사용됩니다.
2. 시도해보십시오. 잡다. 마지막으로 예외를 처리합니다
여기서 시도 앤 캐치 후 진술은 이전의 진술과 동일하며 예외가 발생하는지 여부에 관계없이 마침내 실행해야합니다. 따라서, 마지막 명령문 블록은 일반적으로 쓰레기 수집을 수행하는 데 사용됩니다. 구문 형식은 다음과 같습니다.
try {정상적으로 실행하는 진술} catch (예외 e) {예외를 처리하는 문장} 최종적으로 {분명히 처리 될 진술}}3. 시도해보십시오. 마지막으로 예외를 처리합니다
프로그램에서 예외가 발생하면 최종 명령문 블록에서 그에 따라 처리 할 수 있습니다. 또한, 프로그램에 예외가 없을 때, 시도와 마지막으로 마지막으로 명령문을 실행 한 후, 마지막 명령문 블록의 코드가 실행됩니다. 구문 형식은 다음과 같습니다.
{실행 해야하는 진술} try} 마지막으로 {분명히 처리 될 진술}}3. 예외를 던지십시오
프로그램에서 발생하는 예외는 위의 시도 외에도 ... Catch 명령문 프로세싱을 사용하면 전투 선언 또는 Throws 문을 사용하여 예외를 던질 수도 있습니다.
1. 제도를 사용하여 예외를 던지십시오
던지기는 메소드 선언에 사용되며, Throws 선언을 사용하여 메소드를 선언 할 때 예외를 처리 한 다음 메소드를 호출 할 때 예외를 처리합니다.
여러 예외를 선언 해야하는 경우 각 예외는 쉼표로 분리되어야하며 구문 형식은 다음과 같습니다.
데이터 유형 메소드 이름 (공식 매개 변수 목록)은 예외 클래스 1, Exception Class 2, ..., Exception Class N {Method Body;} 던지기예를 들어, 던지기를 사용하여 예외 예외를 던지십시오.
public void showInfo ()는 예외를 던져 {// rash exception fileInputStream in = new FileInputStream ( "C : //record.txt"); // IO 개체 생성}2. Throw 문을 사용하여 던지기 예외를 사용하십시오
프로그램이 자체적으로 예외를 던지기를 원한다면 Throw 문을 사용하여 달성 할 수 있습니다. 구문 형식은 다음과 같습니다. 새로운 예외 ( "예외");
Throw 문을 사용하여 던지는 것은 예외 클래스의 인스턴스이며, 일반적으로 if 문에 사용됩니다. 좋다:
if (x <0) {Throw New Exception ( "프로그램 예외, x는 0보다 작을 수 없습니다");}