이 기사에서는 예제를 통해 Java의 예외 메커니즘을 분석하고 참고할 수 있도록 모든 사람과 공유합니다. 나는 이것이 Java 프로그램 예외 처리 기능을 향상시키는 데 도움이 될 것이라고 믿습니다. 구체적인 분석은 다음과 같습니다.
우리 모두 알고 있듯이 Java의 예외(Exception) 메커니즘은 프로그램이 필연적으로 오류를 발생시키기 때문에 프로그램의 오류를 포착하고 프로그램의 안정성과 견고성을 향상시킬 수 있습니다.
Java의 예외는 Checked Exception(비런타임 예외)과 UnChecked Exception(런타임 예외)으로 구분됩니다. 모든 예외 클래스는 Exception을 직접 또는 간접적으로 상속합니다. Exception은 Throwable 클래스에서 직접 상속됩니다. Throwable 클래스의 직접 하위 클래스에도 오류가 발생하면 프로그램이 직접 오류를 처리할 수 없으므로 여기서는 Exception 클래스에 중점을 둡니다. . RuntimeException 클래스는 Exception에서 상속되며, 런타임 예외는 RuntimeException 클래스에서 직접 또는 간접적으로 상속됩니다. Exception 클래스에서 상속되는 다른 예외는 컴파일 중에 발견될 수 있는 비런타임 예외입니다. 런타임 예외는 런타임에만 발생합니다. 예를 들어, 0으로 산술 나누기는 컴파일 중에 통과할 수 있지만 런타임 예외는 런타임에 발생하며 제수는 0이 될 수 없습니다.
Java에는 두 가지 유형의 예외 처리가 있습니다.
1. 예외 잡기
구조는 다음과 같습니다
try{//예외를 생성할 수 있는 코드 실행}catch(RuntimeException e){//적발된 예외 처리}catch(Exception e)//캐치할 여러 예외 정의 가능{//캡처된 예외 처리}마지막으로 {//The 캡처 후 실행할 코드는 선택사항이며, 있을 경우 예외 유무와 관계없이 실행됩니다.} try-catch-finally
catch에 의해 예외가 catch되면 나중에 catch 문이 있으면 실행되지 않습니다. 그러나 finally 블록이 있으면 finally 블록의 문은 반드시 실행됩니다.
2. 예외 선언
ThrowsException은 예외를 생성하는 메소드가 호출되는 메소드 선언에서 선언됩니다. 이 메소드는 이러한 유형의 예외를 처리하지 않지만 메소드 호출자에 의해 처리됩니다.
3. 인위적으로 예외를 던지기
메소드 내에서 직접 예외를 발생시키십시오. 예외를 발생시키십시오.
런타임 예외를 처리하지 않는 것이 좋습니다.
사용자 정의 예외는 Exception 클래스에서 상속되는 하위 클래스를 정의합니다. 일반적으로 RuntimeException 클래스에서 상속되는 하위 클래스는 정의하지 않습니다. try 블록에 return 문이 있는 경우 finally 블록 문은 다음과 같습니다. finally 블록을 먼저 실행해야 하며, 다시 return 하되 try 블록에 System.exit(0) 문이 있으면 System.exit(0)이 현재 블록을 종료하므로 finally 블록의 문은 실행되지 않습니다. Java 가상 머신을 실행하면 가상 머신 구현이 종료되기 전에 프로그램이 종료됩니다.
클래스 myException은 예외를 확장합니다{ public myException(String str) { super(str) }}myException;
예외는 파일 처리, 입력 및 출력 스트림 응용 프로그램 등에 사용됩니다.
일반적인 예외 유형은 다음과 같습니다.
1. java.lang.NullPointerException: 널 포인터 예외입니다. 이 예외가 발생하는 이유는 참조가 널이지만 프로그램에서 참조의 메소드가 호출되기 때문입니다.
2. java.lang.ClassNotFoundException: 지정된 클래스를 찾을 수 없습니다. 클래스가 정의되지 않았을 수 있습니다.
3. java.lang.ArithmeticException: 0으로 나누기와 같은 산술 예외입니다.
4. FileNotFoundException: 파일 처리 중에 지정된 파일을 찾을 수 없습니다.
5. IOException: 입력 및 출력 스트림 예외
6. SQLException: sql 예외, sql 문 실행 중 오류가 발생했습니다.
또한 향후 프로그래밍에서 직면하게 될 다양한 유형의 예외가 있습니다. 나는 이 기사에서 설명하는 내용이 모든 사람의 Java 프로그래밍에 대한 특정 참조 가치를 갖고 있다고 믿습니다.