Java의 예외(예외라고도 함)는 프로그램 실행 중에 발생하는 이벤트로, 이로 인해 실행 중인 프로그램의 정상적인 명령 흐름이 중단됩니다. 프로그램의 실행 오류를 신속하고 효과적으로 처리하기 위해서는 예외 클래스를 사용해야 합니다.
예외 소개
프로그램에서는 프로그래머가 예상하지 못한 다양한 상황이나 사용자의 잘못된 데이터, 존재하지 않는 파일을 열려고 하는 등 프로그래머가 통제할 수 없는 상황에서 오류가 발생할 수 있으며, 등. . 프로그램의 실행 오류를 신속하고 효과적으로 처리하기 위해 Java에서는 특별히 예외 클래스를 도입했습니다.
예제 1
예외가 무엇인지 더 잘 이해하기 위해 매우 간단한 Java 프로그램을 살펴보겠습니다. 다음 샘플 코드에서는 1~3 범위의 정수를 입력할 수 있으며, 그 외의 경우에는 입력 오류가 발생합니다.
package ch11; import Java.util.Scanner; public class TestO1 { public static void main(String[] args) { System.out.println("请输入您的选择:(1~3 之间的整数)"); Scanner input=new Scanner(System.in); int num=input.nextInt(); switch(num) { case 1: System.out.println("one"); break; case 2: System.out.println("two"); break; case 3: System.out.println("three"); break; default: System.out.println("error"); break; } } }
일반적으로 사용자는 시스템 메시지에 따라 1에서 3 사이의 숫자를 입력합니다. 그러나 사용자가 요구한 대로 입력하지 않는 경우, 예를 들어 문자 "a"를 입력하는 경우 프로그램 실행 시 예외가 발생하며 실행 결과는 다음과 같습니다.
请输入您的选择:(1~3 之间的整数) a Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at text.text.main(text.java:11)
예외 사용의 원인과 원칙
Java에서 예외가 발생하는 세 가지 주요 이유는 다음과 같습니다.
1. Java 내부 오류 예외, Java 가상 머신에서 생성된 예외.
2. 널 포인터 예외, 범위를 벗어난 배열 예외 등 작성된 프로그램 코드의 오류로 인해 발생하는 예외. 이러한 종류의 예외를 확인되지 않은 예외라고 하며 일반적으로 특정 클래스에서 이러한 예외를 중앙에서 처리해야 합니다.
3. throw 문을 통해 수동으로 생성된 예외를 확인된 예외라고 하며 일반적으로 호출자에게 필요한 정보를 알리는 데 사용됩니다.
Java는 객체 지향 방법을 통해 예외를 처리합니다. 메소드 실행 중에 예외가 발생하면 메소드는 예외를 나타내는 객체를 생성하고 이를 런타임 시스템에 전달하여 예외를 처리할 해당 코드를 찾습니다.
예외 객체를 생성하고 이를 런타임 시스템에 제출하는 과정을 예외 발생이라고 부릅니다. 런타임 시스템은 해당 유형의 예외를 처리할 수 있는 개체를 찾을 때까지 메서드의 호출 스택을 검색합니다. 이 프로세스를 예외 포착이라고 합니다.
Java 예외로 인해 사용자는 프로그램의 견고성과 보안을 고려해야 합니다. 예외 처리는 프로그램의 정상적인 흐름을 제어하는 데 사용되어서는 안 됩니다. 주요 기능은 프로그램이 실행될 때 발생하는 예외를 캡처하고 그에 따라 처리하는 것입니다. 특정 메소드에서 발생할 수 있는 예외를 처리하는 코드를 작성할 때 다음 세 가지 원칙을 따를 수 있습니다.
1. 예외를 포착하려면 현재 메소드 선언에 try catch 문을 사용하세요.
2. 메서드가 재정의되면 이를 재정의하는 메서드는 동일한 예외나 예외의 하위 클래스를 발생시켜야 합니다.
3. 상위 클래스가 여러 예외를 발생시키는 경우 재정의 메서드는 해당 예외의 하위 집합을 발생시켜야 하며 새 예외를 발생시킬 수 없습니다.
예외 유형
Java에서 모든 예외 유형은 내장 클래스 java.lang.Throwable 클래스의 하위 클래스입니다. 즉, Throwable은 예외 클래스 계층 구조의 최상위 수준에 있습니다. 그림 1에 표시된 것처럼 Throwable 클래스 아래에는 Exception과 Error라는 두 가지 예외 분기가 있습니다.
그림 2에서 볼 수 있듯이 Throwable 클래스는 모든 예외와 오류의 상위 클래스입니다. 아래에는 각각 오류와 예외를 나타내는 두 개의 하위 클래스인 Error와 Exception이 있습니다. 예외 클래스 Exception은 런타임 예외와 비런타임 예외로 구분됩니다. 이 두 예외는 확인되지 않은 예외와 확인된 예외라고도 합니다.
·Exception 클래스는 사용자 프로그램에서 발생할 수 있는 예외에 사용되는 클래스이기도 합니다.
·Error는 일반적인 상황에서 프로그램이 포착할 수 없을 것으로 예상되는 예외를 정의합니다. Error 유형의 예외는 Java 런타임에서 런타임 시스템 자체와 관련된 오류를 표시하는 데 사용됩니다. 스택 오버플로가 이 오류의 예입니다.
·이 장에서는 오류 유형의 예외 처리에 대해 논의하지 않습니다. 오류 유형은 일반적으로 프로그램의 통제를 벗어나는 치명적이고 치명적인 오류이기 때문입니다. 이 장의 나머지 부분에서는 Exception 유형의 예외 처리에 대해 설명합니다.
런타임 예외는 RuntimeException 클래스 및 NullPointerException, IndexOutOfBoundsException 등과 같은 해당 하위 클래스의 예외입니다. 이러한 예외는 확인되지 않은 예외이며 프로그램에서 캡처하거나 처리하지 않도록 선택할 수 있습니다. 이러한 예외는 일반적으로 프로그램 논리 오류로 인해 발생하므로 프로그램은 논리적 관점에서 이러한 예외가 발생하지 않도록 노력해야 합니다.
비런타임 예외는 RuntimeException 이외의 예외를 참조하며 모두 Exception 클래스와 해당 하위 클래스에 속합니다. 프로그램 구문의 관점에서 처리해야 하는 예외입니다. 처리되지 않으면 프로그램이 컴파일되지 않습니다. IOException, ClassNotFoundException 등 및 사용자 정의 예외 예외는 일반적으로 사용자 정의 확인 예외가 사용되지 않습니다. 표 1에는 몇 가지 일반적인 예외 유형과 해당 기능이 나열되어 있습니다.
php 중국어 웹사이트, 수많은 무료 Java 입문 튜토리얼, 온라인 학습을 환영합니다!
위 내용은 자바에서 예외란 무엇인가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!