>  기사  >  Java  >  자바에서 예외란 무엇인가요?

자바에서 예외란 무엇인가요?

青灯夜游
青灯夜游원래의
2019-11-18 11:12:573007검색

자바에서 예외란 무엇인가요?

Exception은 프로그램 실행 중에 발생하는 오류를 말합니다.

예외라고도 알려진 Java의 예외는 프로그램 실행 중에 발생하는 이벤트로, 이로 인해 실행 중인 프로그램의 정상적인 명령 흐름이 중단됩니다. 프로그램의 실행 오류를 신속하고 효과적으로 처리하기 위해서는 예외 클래스를 사용해야 합니다. [추천 학습: java 강좌]

Exception 발생 원인 및 사용 원리

Java에서 Exception이 발생하는 이유는 크게 세 가지로 나눌 수 있습니다.

  1. Java 내부 오류 예외, Java 가상 머신 Exception 생성 .

  2. 널 포인터 예외, 범위를 벗어난 배열 예외 등과 같이 작성된 프로그램 코드의 오류로 인해 발생하는 예외입니다. 이러한 종류의 예외를 확인되지 않은 예외라고 하며 일반적으로 특정 클래스에서 이러한 예외를 중앙에서 처리해야 합니다.

  3. throw 문을 통해 수동으로 생성된 예외를 확인된 예외라고 하며 일반적으로 호출자에게 필요한 정보를 알리는 데 사용됩니다.

Java는 객체 지향 접근 방식을 통해 예외를 처리합니다. 메소드 실행 중에 예외가 발생하면 메소드는 예외를 나타내는 객체를 생성하고 이를 런타임 시스템에 전달하여 예외를 처리할 해당 코드를 찾습니다.

예외 객체를 생성하고 이를 런타임 시스템에 제출하는 과정을 예외 발생이라고 부릅니다. 런타임 시스템은 해당 유형의 예외를 처리할 수 있는 개체를 찾을 때까지 메서드의 호출 스택을 검색합니다. 이 프로세스를 예외 포착이라고 합니다.

Java 예외로 인해 사용자는 프로그램의 견고성과 보안을 고려해야 합니다. 예외 처리는 프로그램의 정상적인 흐름을 제어하는 ​​데 사용되어서는 안 됩니다. 주요 기능은 프로그램이 실행될 때 발생하는 예외를 캡처하고 그에 따라 처리하는 것입니다. 메소드에서 발생할 수 있는 예외를 처리하는 코드를 작성할 때 다음 세 가지 원칙을 따를 수 있습니다.

  1. 현재 메소드 선언에서 try catch 문을 사용하여 예외를 포착합니다.

  2. 메서드가 재정의되면 이를 재정의하는 메서드는 동일한 예외나 예외의 하위 클래스를 발생시켜야 합니다.

  3. 부모 클래스가 여러 예외를 발생시키는 경우 재정의 메서드는 해당 예외의 하위 집합을 발생시켜야 하며 새 예외를 발생시킬 수 없습니다.

예외 유형

Java에서 모든 예외 유형은 내장 클래스 java.lang.Throwable 클래스의 하위 클래스입니다. 즉, Throwable은 예외 클래스 계층 구조의 최상위 수준에 있습니다. 그림 1에 표시된 것처럼 Throwable 클래스 아래에는 Exception과 Error라는 두 가지 예외 분기가 있습니다.

자바에서 예외란 무엇인가요?
그림 1 예외 구조 다이어그램

Throwable 클래스는 모든 예외와 오류의 상위 클래스입니다. 아래에는 각각 오류와 예외를 나타내는 두 개의 하위 클래스인 Error와 Exception이 있습니다. 예외 클래스 Exception은 런타임 예외와 비런타임 예외로 구분됩니다. 이 두 예외는 확인되지 않은 예외와 확인된 예외라고도 합니다.

  • Exception 클래스는 사용자 프로그램에서 발생할 수 있는 예외에 사용되는 클래스이기도 합니다.

  • Error는 일반적인 상황에서 프로그램이 포착할 수 없을 것으로 예상되는 예외를 정의합니다. Error 유형의 예외는 Java 런타임에서 런타임 시스템 자체와 관련된 오류를 표시하는 데 사용됩니다. 스택 오버플로가 이 오류의 예입니다.

  • 이 장에서는 오류 유형의 예외 처리에 대해 논의하지 않습니다. 왜냐하면 오류는 일반적으로 프로그램의 통제를 벗어나는 치명적이고 치명적인 오류이기 때문입니다. 이 장의 나머지 부분에서는 Exception 유형의 예외 처리에 대해 설명합니다.

런타임 예외는 RuntimeException 클래스 및 NullPointerException, IndexOutOfBoundsException 등과 같은 해당 하위 클래스의 예외입니다. 이러한 예외는 선택 취소되어 있으며 프로그램에서 캡처되거나 처리되지 않을 수 있습니다. 이러한 예외는 일반적으로 프로그램 논리 오류로 인해 발생하므로 프로그램은 논리적 관점에서 이러한 예외가 발생하지 않도록 노력해야 합니다.

비런타임 예외는 RuntimeException 이외의 예외를 나타내며 모두 Exception 클래스와 해당 하위 클래스에 속합니다. 프로그램 구문의 관점에서 처리해야 하는 예외입니다. 처리되지 않으면 프로그램이 컴파일되지 않습니다. IOException, ClassNotFoundException 등 및 사용자 정의 예외 예외는 일반적으로 사용자 정의 확인 예외가 사용되지 않습니다. 표 1에는 몇 가지 일반적인 예외 유형과 해당 기능이 나열되어 있습니다.

자바에서 예외란 무엇인가요?

위 내용은 자바에서 예외란 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.