Java의 "보고되지 않은 예외" 오류 이해
Java 프로그래머는 종종 "오류: 보고되지 않은 예외 ; 잡히거나 던져지도록 선언됩니다." 여기서 XXX는 예외 클래스 이름입니다. 이 오류는 확인된 예외가 현재 범위 내에서 적절하게 처리되지 않고 발생하거나 전파되고 있음을 나타냅니다.
Checked 및 Unchecked Exception
Java 예외는 확인됨 또는 확인됨으로 분류됩니다. 또는 선택 취소되었습니다. Throwable에서 파생되었지만 RuntimeException 및 해당 하위 클래스를 제외한 확인된 예외는 해당 예외가 발생하는 메서드나 생성자 내에서 직접 처리되어야 합니다. Error, RuntimeException 및 해당 하위 클래스와 같은 확인되지 않은 예외는 명시적인 처리가 필요하지 않습니다.
확인된 예외 처리
확인된 예외를 해결하려면 다음 중 하나를 수행할 수 있습니다.
-
잡아서 다루기: 사용해 보세요 ... 다음 예에서 볼 수 있듯이 현재 범위 내에서 예외를 처리하기 위한 catch 문:
-
Thrown으로 선언: 바깥쪽 메서드 또는 생성자가 예외를 throw하도록 선언합니다. 표시된 것처럼 예외 처리 책임을 호출자에게 전달합니다. 아래:
적절한 접근 방식 결정
적절한 처리 방법은 상황과 예외의 성격에 따라 다릅니다. 다음 지침을 고려하세요.
- 예외를 효과적으로 처리할 수 있는 수준에서 처리하세요.
- 예기치 않은 예외를 포착할 수 있으므로 Exception이나 Throwable을 포착하지 마세요.
- 예외를 발생시키는 메소드를 선언하지 마십시오. 확인된 모든 잠재적인 처리 작업을 호출자에게 부담으로 주기 때문입니다. 예외.
- 런타임 오류 진단이 더 어려워질 수 있으므로 예외를 스쿼시하지 마십시오.
특수 사례
-
정적 초기화: 정적 초기화에서 확인된 예외는 다음을 사용하여 처리할 수 있습니다. 정적 블록.
-
정적 블록: 둘러싸는 컨텍스트가 없으므로 정적 블록 내의 확인된 예외는 블록 내에서 포착되어야 합니다.
-
람다: Lambda는 일반적으로 함수 인터페이스에 따라 확인되지 않은 예외를 발생시킬 수 없습니다. 구현.
-
중복 예외 이름: 동일한 이름을 가진 예외의 정규화된 이름이 서로 다른지 확인하세요. 그렇지 않으면 컴파일러가 이를 별개의 예외로 인식하지 못합니다.
추가 리소스
-
Oracle Java 자습서:
- catch 또는 지정 요구 사항
- 예외 포착 및 처리
- 에서 발생한 예외 지정 방법
위 내용은 Java에서 '보고되지 않은 예외' 오류를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!