컴퓨터프로그래밍

자바 : 예외 및 그 처리

모든 프로그램은 소스 코드를 디버깅하는 경우에만 안정적으로 작동하고, 예상치 못한 상황이 발생할 수있는 조건이 없습니다. 가능한 오류를 잡는 과정은 프로그래밍 단계에서 수행된다. 이렇게하려면 개발자는 모든 예상되는 결과를 고려하고 프로그램의 작동을 방해 또는 붕괴로 연결되지 수 있도록 오류의 영향을 제한하려고 시도합니다.

당신은 예외 처리를해야 할 때

자바에서 예외가, 잘못된 사용자 입력에 의해 자원이나 갑작스러운 네트워크 단절 프로그램에 대한 필요성을 야기 할 수 없습니다. 응용 프로그램 개발자가 만든 편안하게 사용하기 위해, 당신은 응급 상황의 발생을 제어해야합니다. 소비자는 처리되지 않은 예외, 또는 뭔가 잘못했다는 설명이 나옵니다 메시지의 한 부분으로 인해 데이터가 손실, 응용 프로그램을 종료하는 것을 기다릴 필요가 없습니다.

자바 예외 처리

무엇을 고려해야 하는가? 자바 언어 자체 내장 된 예외 처리 기능이 있습니다. 물론, 오류의 큰 비율이 다른 컴파일 단계에 의해 체포되고, 시스템이 자동으로 더 이상 가능하지 그 사용을 통지합니다. 그러나 런타임에 발생하는 예외의이 종류가있다. 개발자는 그것을 예상 할하고 오류가 발생하지 않도록 코드를 설계 할 수 있어야하고, 특별한 방법으로 그것을 처리하고 다른 지점에 제어를 넘겨해야한다.

자바에서는, 이것은 예외를 잡기 위해 컴파일러에 의해 부과되므로 일반적인 문제는 알려져 있으며, 표준 운동 패턴을 가지고있다.

전형적인 제외

이 부문 - 당신은 예외를 얻을 수있는 가장 간단한 예. 단순함에도 불구하고, 측면에서, 제 산기 등의 오류가 발생한다 제로 일 수있다. 음, 가능하다면 과거의 출현을 예측하고 방지합니다. 그러나이 옵션은 항상 사용할 수 없습니다, 그래서 예외를 잡는 것은 "0으로 나누기"의 경우에 직접 구성해야합니다.

처리 오류를 차단하는 자바 메커니즘은 다음과 같습니다 :

  • 힙 예외 객체뿐만 아니라 다른대로 만들어지고
  • 프로그램의 자연적인 과정은 중단;
  • 배제 메커니즘은 코드를 계속하는 다른 방법을 찾기 위해 노력하고있다;
  • 프로세서, 직장에서 프로그램의 안전한 실행을 찾거나 복원, 또는 특별한 방법으로 예외의 실현을 발생합니다.

다음과 같을 수 오류를 만드는 가장 간단한 예 :

경우 (a == NULL의)

() 새로운 NullPointerException이 던져;

여기서, 변수 A가 초기화에 체크, 즉, 하지 null 객체의 참조 여부. 이러한 상황이 생겨 및 특수 처리가 필요한 경우, 예외가 던져 새로운 NullPointerException이에 의해 발생합니다 ().

키워드에 대한 몇 가지 세부 사항

예외를 처리 할 때 특정 작업을 참조하는 키워드 자바를 사용하는 것이 필요하다. 자신의 다섯 가지 프로그래밍이 언어 :

  • 보십시오. 이 키워드입니다 이미 충족, 그것은 예외를 던질 수있는 코드의 섹션으로의 전환을 의미한다. 블록 제한 중괄호 {}.
  • 캐치. 그것은 원하는 예외 유형을 차단하고 적절하게 처리 할 수 있습니다.
  • 마지막으로. 이 키워드는 예외가 잡힌하지 않은 경우에도, 선택 사항이며, 어쨌든 필요한 코드의 특정 부분을 수행하는 데 사용됩니다. try 블록 바로 뒤에 추가되었습니다.
  • 던져 - 당신은 어디에서 자바 예외를 만들 수 있습니다.
  • 예외 - 메소드 서명에 배치 된 키워드. 그것은 다음과 같은 코드가 이러한 유형의 자바의 예외를 던질 수 있다는 것을 의미한다. 그 예상대로 방법이 작동하지 않을 수 있습니다 -이 마크는 명심해야하는 개발자에 신호 역할을합니다.

시도와 잡기

자바 예외 출시, 자연스럽게은 특별한 방법으로 처리됩니다 것으로 가정합니다. 코드 섹션이 블록에 울타리가 쳐져 경우 가장 편리한 방법은 그것을 할 수 있습니다. 어떤 예외를 포함 할 수있다. 이 코드를 실행하면, 가상 머신은 예기치 않은 상황을 발견이 중요한 블록 및 전송이 처리에 역으로 제어를 이해합니다.

자바 코드는 예외가 될 수있는 내에서 특별한 블록 시도에 싸여있다. 따라서, 그는 같은 장소,하지 raspolzayas 코드에 잡힐 것 몇 가지 예상치 못한 상황을 두었다.

다음과 같이 처리 유닛에 가장 전형적인 코드 :

{시도

// 여기 예외를 발생시킬 수있다 일부 코드는

} 캐치 (Tip_isklyucheniya_1의 identifikator_1) {

// 여기 예외 처리가 있고, 그 종류 및 조건에 따라,

} 캐치 (Tip_isklyucheniya_2의 identifikator_2) {

// 여기 예외 처리가 있고, 그 종류 및 조건에 따라,

}

키워드 캐치는 그것의 유형을 준수 함을 제공하는 아래에 설명 된대로 처리 할 그 코드를보고하고 예외를 검사합니다. 식별자는 인수로 코드 블록의 처리에 이용 될 수있다.

최종적으로

그것은 이전 장에서 분명 해졌다로서, catch 블록은 예외를 포착하고이를 처리합니다. 그러나 매우 자주 상황에 관계없이 실수를 잡힌 여부에 몇 가지 코드를 실행해야합니다 경우 발생한다. 이를 위해 마지막 키워드가있다. 파일 또는 네트워크 연결을 개폐하는 다양한 카운터의 값을 증가시키기 위해 사용된다.

이 그래프는 여러 catch 블록이 방법은 예외를 포착 발명 제공합니다. 예를 들어, 시도에 포함 된 코드는 감기와 같은 예기치 않은 상황을 생성합니다. 그런 다음 콘솔은«! 감기 잡은»표현이 표시 될 것입니다«무엇인가에 대해? 응원인가요»를. 즉, 마지막 블록은 어떤 경우에 실행된다.

사실, 방법은 결국이 트리거링을 방지 할 수 있습니다. 그것은 가상 머신의 완료와 연결되어 있습니다. 그것을 구현하는 방법을 찾기는 인터넷 열린 공간에서 가능하다.

던져 키워드

투사는 예외를 발생시킨다. 다음과 같은 구문은 :

) (새 NewException을 던져;

유형 NewException에 새로운 예외가 생성됩니다 (). 사용할 수있는 유형은 이미 표준 자바 라이브러리 클래스에 포함되어 있으며 이전에 자체 생산의 개발자에 의해 정의되기 때문에.

이 디자인은 호출이 다음을 가로 챌 수 있도록하기 위해, try 블록 내에서 발생해야 어떤 방법의 설명의 일부입니다.

키워드 발생

어떤 방법이 예외를 발생하지만, 제대로 처리 할 수없는 수있는 상황의 개발 과정에있는 경우. 이를 위해, 메소드 서명에 단어가 발생 가능한 예외의 유형을 지정합니다.

이 레이블은 방법들이 같은 예외를 처리 할 수 없음을 클라이언트 개발자를위한 지표의 일종이다. 오류 유형을 선택하면 또한, 다음 컴파일러는 명시 적으로 강제로 그것을 부탁드립니다.

자원 시도

자바 버전 7 개발자는 자원 치료 try 블록과 같은 주요 혁신을 포함했다.

사용 자원을 절약하기 위해 종료해야합니다 후 많은 개체가, Java로 작성됩니다. 이전에는이 점을 고려하고 수동으로 인스턴스를 중지했다. 그러나 지금 그들은 AutoClosable 인터페이스를 보였다. 그것은 자동으로 try 블록에 배치 이미 사용 목적을 닫으하는 데 도움이됩니다. 이 방법을 통해 그것의 가독성이 크게 증가에서 코드를 작성하는 것이 더 편리하게되었다.

자신의 클래스 Java 예외

설명 프로그래밍 언어의 제작자는 비상 사태의 설계 유형의 계정을 여러 측면으로했다. 그러나, 모든 옵션이 자바가 자신의 예외를 정의 할 수있는 기능을 구현 그렇게 사건의 결과가 작동하지 않습니다 방지하기 위해, 그것은 특정 코드의 필요에 적합하다.

가장 간단한 방법은 만들 수 있습니다 - 개체 컨텍스트에 가장 적합한에서 상속 할 수 있습니다.

, Exception에서 상속 자신의 예외를 정의하는 데 사용되는 클래스가 일어났다. 기본, 두 번째 - - 인수 MSG의 String 형과 MyException에서 두 개의 생성자가 있습니다.

다음에, 서명을 포함하는 공용 교실 FullConstructors 구현 방법 F에 MyException을 던진다. 이 키워드는 f는 자바 MyException 예외처럼 던질 수 있다는 것을 의미한다. 또한, 상기 방법은 몸 던져하여 콘솔 자체 실제 생성 MyException에 텍스트 정보 출력을 생성.

두 번째 방법은 잡기에서 콘솔에 반영됩니다 당신은 예외를 만들 때, 그것은 문자열 매개 변수를 전달하는 첫 번째, 약간 다릅니다. 주요 F ()와 g ()를 시도 검사에 배치 키워드 캐치 MyException를 캡처하도록 구성하는 것이 분명하다. 처리 결과는 콘솔에 에러 메시지를 표시 할 수있다 :

따라서 자신의 손으로, 자바 예외를 추가했다.

건축 예외

자바에있는 모든 개체와 마찬가지로 예외는 상속 계층 구조를 가지고있다. 이 프로그래밍 언어에 던져 모든 오류의 루트 요소는 java.lang.Throwable 클래스입니다. 그 이가지에서 상 속됨 - 오류 및 예외입니다.

오류 - 중요한 오류 신호 및 체크되지 않은 Java 예외입니다. 대부분의 경우에 이러한 차단 및 처리 데이터는 설계 단계에서 발생하지 최종 애플리케이션 코드에 도입 할 필요가있다.

작성 및 예외 분석을위한 가장 일반적으로 사용되는 클래스는 예외입니다. 어떤 차례로, RuntimeException을 포함한 여러 가지로 구분된다. RuntimeException을함으로써 프로그램 중에 발생하는, 즉, 런타임 예외입니다. 그것에서 파생 된 모든 클래스는 확인 불가능한 있습니다.

종종 예외가 있습니다

자바 예외에서의 목록은 구체적으로 그들 각각을 설명해야하므로, 가장 자주 사용되는, 아래에 제시되어있다 :

  • arithmeticexception이. 다음은 산술 연산과 관련된 오류를 포함한다. 가장 눈부신 예 - 0으로 나누기.
  • 는 ArrayIndexOutOfBoundsException - 길이의 합계를 초과하는 배열 요소 수 이의.
  • ArrayStoreException를 - 배열의 호환되지 않는 요소의 유형을 지정하는 시도.
  • 는 ClassCastException - 다른 잘못된 유형을 가져 오는 시도.
  • 는 IllegalArgumentException - 메소드 호출에 잘못된 인수를 사용.
  • 없는 NegativeArraySizeException - 당신이 부정적인 크기의 배열을 만들 예외.
  • NullPointerException이 - 참조 오용를 null로.
  • NumberFormatException이는 - 잘못된 문자열 변환이 정수로 발생합니다.
  • 에 UnsupportedOperationException - 작업이 지원되지 않습니다.

이러한 예는 체크되지 않은 Java 예외의 유형을 나타냅니다. 그러나 이렇게 확인 봐 :

  • 의 ClassNotFoundException - 클래스를 찾을 수 없습니다.
  • IllegalAcccessException는 - 클래스에 대한 액세스를 제한합니다.
  • 예외 : InterruptedException - 흐름의 중단.
  • NoSuchFieldException는 - 아니 필수 필드가 없습니다.

예외의 해석

자주 발생하는 예외의 말하기 것은 디자인에 자신의 해석이 잘못 인식 될 수 있음에 유의해야한다. 다음에 예기치 않은 상황이 존재할 수있다 더욱 상세에 설명하는 간단한리스트이다.

NullPointerException이. 예외가있는 최초의 경우 NULL로 동일한 개체에 대한 참조를 끌 것이다. 또한 제로 클래스의 인스턴스 메소드로 확장한다. NullPointerException이 동일한 길이는 널 어레이를 얻는 경우에 발생 될 수있다. 주기적으로 널 (null)에 사이트를 확인합니다 이러한 상황을 방지하기 위해.

는, ArrayIndexOutOfBoundsException. 모든 프로그램은 배열을 사용하지 않고 존재할 수 없습니다. 따라서, 호소의 빈번한 발생은 에러 수있다. 현상 인덱스리스트에없는 배열 요소를 액세스하려고 할 때 예외가 발생. 예를 들어, 요청 된 값이 제로 이상 또는 길이 이하이다. 수시로 배열의 0의 점수로 시작한다는 사실의 결과이다.

연구 결과

자바 예외 처리 - 크게 프로그래머의 작업을 용이하게하고 그 깨끗하고 코드 오류 하나도 없어도 만들 수있는 강력한 도구 환경,. 어떻게 원활하고 안정적으로 작동하는 응용 프로그램에 개발자의 상태와 명성에 따라 달라집니다.

물론, 더 많거나 적은 간단한 프로그램에 비정상적인 상황을 훨씬 쉽게 추적 할 수 있습니다. 그러나 천 몇 백 라인에 대한 대규모 자동화 된 단지에서 단지 장기 테스트 및 디버깅의 결과로 가능하다.

그들이 열광을 찾을 때 일부 응용 프로그램에서 발생되는 자바 예외 오류를 들어, 일부 기업은 보상을 제공합니다. 특히 보안 정책 소프트웨어의 위반이 발생할 그들에 의해 평가.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ko.delachieve.com. Theme powered by WordPress.