>  기사  >  Java  >  Java 예외 및 어설션을 사용하는 방법

Java 예외 및 어설션을 사용하는 방법

WBOY
WBOY앞으로
2023-04-20 08:31:061677검색

Java 예외

Java에서 예외 객체는 항상 Throwable 하위 클래스의 인스턴스입니다.

오류 클래스 시스템은 Java 운영 체제의 내부 오류 및 리소스 고갈 상황을 설명합니다.

프로그래밍으로 인해 발생한 오류는 RuntimeException으로 이어집니다. 다른 오류 원인으로 인한 예외 - 예를 들어 I/O 오류로 인해 올바르게 실행된 프로그램의 오류는 RuntimeException 예외를 발생시키지 않습니다.

RuntimeException에서 파생된 예외에는 다음 문제가 포함됩니다. 1> 잘못된 유형 변환, 2> 범위를 벗어난 배열 액세스 3> null 포인터에 액세스하려고 합니다.

RuntimeException에서 파생되지 않은 예외에는 다음이 포함됩니다.

1>파일 끝에서 데이터를 읽으려고 시도하는 경우

2>잘못된 URL을 열려고 하는 경우

3>클래스를 구성하기 위해 문자열을 사용하려는 경우 object 이고 문자열에 해당하는 클래스가 존재하지 않는 경우

RuntimeException을 처리하는 원칙은 다음과 같습니다. RuntimeException이 발생하면 실수임에 틀림없습니다.

다른 브라우저는 다른 유형의 URL을 처리할 수 있으므로 URL 형식이 오류는 프로그램 코드뿐만 아니라 특정 환경에 따라 달라집니다.

Java 언어 사양에서는 Error의 하위 클래스와 RuntimeException의 하위 클래스를 확인되지 않은 예외라고 하며, 다른 예외는 확인된 예외라고 합니다.

예외는 발생하기만 합니다. 다음 4가지 상황에서:

1〉BufferReader 클래스의 readLine 메서드와 같이 "확인된 예외"를 발생시키는 메서드가 호출됩니다.

2〉프로그램이 실행되는 동안 오류가 발생하고 throw를 사용합니다. "확인된 예외"를 발생시키는 명령문

3> 프로그램 오류, 예를 들어 a[-1]=0은 범위를 벗어난 배열 인덱스와 같은 "확인되지 않은 예외"를 발생시킵니다(ArrayIndex--OutOfBoundsException) ;

4 〉Java Virtual Machine 또는 런타임 라이브러리에서 내부 오류가 발생했습니다.

Java에서는 내부 오류를 선언할 필요가 없습니다. 메서드는 발생할 수 있는 모든 "확인된 예외"를 선언해야 합니다. 자신의 하위 클래스에서 상위 클래스의 메서드를 재정의하는 경우. 상위 클래스 메소드가 "확인된 예외"를 전혀 발생시키지 않는 경우 하위 클래스는 동일한 작업만 수행할 수 있다는 점에 유의하는 것이 중요합니다.

Java에서는 발생 표시기가 없는 메소드는 확인된 Java 예외를 발생시킬 수 없습니다. try/catch 코드 블록의 경우, 메소드 내의 코드가 예외를 발생시키고 해당 유형이 catch에 지정되지 않은 경우 메소드는 즉시 종료됩니다.

예외 처리 방법이 알려진 항목을 포착하고 처리해야 합니다(catch 사용). , 처리 방법(throw 사용)을 모르는 예외를 전달합니다.

try/catch/finally 코드 블록의 경우 finally 절의 코드는 예외 포착 여부에 관계없이 실행됩니다.

Java 프로그래머는 리소스를 재활용하려면 finally 절에서 코드를 수동으로 설정해야 하지만 Java에는 "가비지 수집" 메커니즘이 내장되어 있으므로 매우 적은 수의 리소스만 수동으로 재활용해야 합니다.

actionPerformed 메서드는 확인된 예외를 발생시킬 수 없습니다.

Java 예외 메커니즘 사용에 대한 몇 가지 팁:

1〉예외 제어는 간단한 테스트를 실행하는 것에 비해 예외를 포착하는 데 필요한 시간이 이전보다 훨씬 길기 때문에 예외는 비정상적인 상황에서만 사용해야 합니다. ;

2〉 예외를 과도하게 구체화하지 마세요.

3〉 예외를 억제하지 마세요. 다음 형식을 사용할 수 있습니다: try { //code} catch (Exception e) { //empty}

4〉 예외를 전달하는 것을 부끄러워하지 마십시오. 특정 예외(예: FileInputStream 생성자 또는 readLine 메서드를 호출하여 생성된 예외)의 경우 이를 잡는 것보다 전달하는 것이 좋습니다. 사용자에게 오류를 알리거나 실패한 명령을 중단하는 고급 방법을 사용하는 것이 더 적절합니다.

Java 어설션

기본적으로 Java 어설션은 꺼져 있습니다. -ea로 열고 -da로 닫을 수 있습니다. -ea:... 옵션은 기본 패키지에 있는 모든 클래스의 어설션 기능을 켭니다. 어설션을 켜거나 끄는 것은 클래스 로더의 기능입니다.

-da 및 -ea 옵션은 해당 "시스템에 적용되지 않습니다. 클래스 로더가 없는 "클래스"가 효과적입니다. 이러한 시스템 클래스의 경우 -enablesystemassertions/-esa 옵션을 사용하여

Java 어설션 사용 팁:

1> 어설션 검사는 복구할 수 없는 오류입니다.

따라서 어설션을 프로그램의 다른 부분에 복구 가능한 오류가 발생했음을 알리는 신호로 사용하거나 사용자에게 프로그램을 알리는 방법으로 사용해서는 안 됩니다. Java 어설션은 테스트 단계에서 프로그램의 내부 오류를 찾는 데에만 사용해야 합니다.

Java 어설션은 테스트 및 디버깅 단계에서 사용되는 도구인 반면, 로깅은 프로그램의 전체 수명 주기에 걸쳐 사용되는 전략적 도구입니다.

다음은 think in java

위반 지침예외를 사용하여 다음 작업을 수행하는 섹션입니다.

(1) 문제를 해결하고 위반을 일으킨 메서드를 다시 호출합니다.

(2) 상황을 늦추고 방법을 다시 시도하지 않고 계속하세요.

(3) 메서드에서 생성하려는 결과가 아닌 다른 결과를 계산합니다.

(4) 현재 환경에서 최대한 문제를 해결하고, 동일한 위반 사항을 더 발전된 환경에 다시 던집니다.

(5) 현재 환경에서 가능한 한 문제를 해결하고, 더 발전된 환경에 다양한 위반 사항을 다시 던집니다.

(6) 프로그램 실행을 중단합니다.

(7) 코딩을 단순화합니다. 위반 계획으로 인해 상황이 더욱 복잡해지면 매우 짜증스러울 것이므로 사용하지 않는 것이 좋습니다.

(8) 자신의 라이브러리와 프로그램을 더욱 안전하게 만드세요. 이는 "단기 투자"(더 쉬운 디버깅을 위한)이자 "장기 투자"(애플리케이션의 견고성을 향상시키기 위한)입니다

위 내용은 Java 예외 및 어설션을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제