2010-01-21 3 views
2

나는 이것이 멍청한 질문이라고 생각하지만 예외적 인 용어를 듣고 보았다 을 많이 다루었 다. 나는 try/catch를 사용했지만, 아직도 지구상에 무엇이 궁금하니 '취급은'을 의미합니다. 아무도 친절하게도 예외가 실제로 ' 처리'라고 말할 수있는 몇 가지 예를 제공 할 수 있습니까?누군가 제게 예외 처리를 설명해 주시겠습니까?

영어가 불쌍해서 죄송합니다. 제 자신을 분명히하기를 바랍니다.

+1

일반적인 영어 단어입니다. Merriem-Webster Dictionary에서 : * "관련하여 행동하거나 필요한 조치를 취하십시오."* 문제가 "처리되었다"는 말은 그것이 처리되고, 해결되고, 완료되었음을 의미합니다. –

+1

@BlueRaja, 나는 영어 단어 'handling'의 의미를 안다. – Benny

답변

3

예외를 catch하고 해당 유형을 기반으로 일부 논리를 수행하면 응용 프로그램이 갑자기 종료되는 것이 아니라 정상적으로 처리 할 수 ​​있습니다. 여기

은 자바 (인위적인이기는 하나)의 예이다 :이 함수 주어

public int arrayRetrieve(int[] a, int index) { 
    return a[index]; 
} 

, indexa가 유효한 위치 될 것이라는 보장은 없다. 자바에서는 ArrayOutOfBoundsException이 표시됩니다. arrayRetrieve 요구를 호출

코드는이 가능성을 인식하고 그에 따라이 사건을 처리하려면 : ArrayOutOfBoundsException 적발되지 않은 경우

int num = 0; 
try { 
    num = arrayRetrieve(someArray, 77); 
} catch (ArrayOutOfBoundsException e) { 
    // Set num to a default value, or log an error, or however you want to handle this case 
} 

이 대신 충돌하는 프로그램을 일으킬 것입니다.

(이유 중 하나는 내가 특히 자바 Exception 두 종류가 있기 때문에 이루어진 것으로이 예는 말했다 -. 그렇지 명시 적으로 잡아야 종류 및 종류를 ArrayOutOfBoundsException 후자의 예입니다.)

+0

"응용 프로그램이 정상적으로 처리 할 수 ​​있도록"- 그는 단지 "처리"*하는 것이 무엇인지 알지 못한다고 말했습니다. –

+1

그래, 그게 내가 예제를 제공 한 이유입니다 - 아시다시피, 게시물의 90 %는 당신이 인용 한 그 줄을 따라 왔어. 능동적 사고와 모든 것. – danben

3

예외 처리는 예외를 잡아서 처리하는 경우입니다. 오류를 처리하거나, 오류 메시지를 표시하거나, 샘플 데이터 만 사용하는 경우 - 적절한 것은 응용 프로그램에 따라 다릅니다. 게임에서 샘플 데이터를 사용하는 것이 좋을 수 있습니다. 파란색 픽셀 하나는 해를 끼치 지 않지만 의료용 소프트웨어에서는 좋지 않습니다.

예외를 삼키는 예외적 인 삼키는 것과는 대조적인데, 예외를 잡으면 아무 것도하지 않습니다.

6

"처리"는 기본적으로 가정을하지 않고 프로그램을 폭발시키는 대신 정상적으로 오류를 처리하는 것으로 구성됩니다.

로깅 및 이동, 삼키는 것 (숨어서 사용하지 않은 것으로 가장하는 것), 오류 표시 및 현재 작업 취소 등으로 구성 될 수도 있고 실제로 응용 프로그램을 닫는 것으로 구성 될 수도 있습니다. 그것은 모두 응용 프로그램과 예외에 따라 다릅니다.

0

catch 블록의 코드 (또는 귀하의 언어가 사용하는 언어)는 예외를 "처리"하고 있거나 적어도 가정되어 있습니다.

1

간단한 수준에서 '처리'는 '처리'를 의미합니다.

예를 들어, 다음과 같이 할 수 있습니다.

  • 오류의 심각도에 ..depending 프로그램

의 실행을 종료 파일이나 데이터베이스

  • 표시 사용자
  • 에 오류 메시지에 오류 로그 데이터/개발중인 응용 프로그램의 종류.

  • 1

    예외가 항상 종료 조건이 아니기 때문에 이것을 예외 처리라고합니다.

    예외가 발생하면 예외를 일으킨 원인을 수정하고 처리하여 해당 예외를 처리 할 수 ​​있습니다.

    예를 들어 "제로로 나누기"예외가 발생할 수 있습니다. 예외 처리기가있는 경우 예외를 catch하고 문제가되는 데이터를 수정하거나 응용 프로그램이 완전히 죽는 대신 "잘못된 데이터"메시지가 발생할 수 있습니다.

    2

    예외 처리은 프로그램에서 예외 이벤트를 처리하는 동작으로, 프로그램이 충돌하지 않고 의미있는 방식으로 계속 실행됩니다. 당신은 try/catch를 사용했다고 말하면 catch 블록에서 무엇을 하든지 실제 예외 처리가됩니다.

    관련 문제