Skip to content

예외 처리

static edited this page Aug 2, 2018 · 13 revisions

상위 문서: Home
명령에서 정의되지 않은 예외에 대한 처리 방법입니다.

구분

  • defined exception: 이 문서에 예외가 정의되었으며, 예외에 대한 처리 방법이 단 한가지입니다.
    • 이 경우 구현체는 반드시 이 처리 방법을 따라야 합니다.
  • unspecified exception: 이 문서에 예외가 정의되었으나, 예외에 대한 처리 방법이 두가지 이상입니다.
    • 이 경우 구현체는 제시된 처리 방법 중 한가지를 따르면 됩니다.
    • 같은 예외에 대해서는 반드시 일관성 있는 예외 처리를 해야 합니다.
    • 구현체의 구현 언어, 사용 라이브러리, 내부 구조, 컴파일/인터프리팅 구현체 여부 등에 따라 구현체에서 유연성 있게 예외 처리를 할 수 있게 하기 위해 일부 예외가 unspecified exception에 해당됩니다.
  • undefined exception: 이 문서에 예외가 정의되었으나, 예외에 대한 처리 방법이 제시되지 않았습니다. 또는, 이 문서에도 예외가 정의되지 않았습니다.
    • 아희++ 사용자는 되도록 이러한 예외가 발생하지 않도록 코딩하는 것이 좋습니다.
    • 구현체는 예외 처리를 자유로운 방식으로 할 수 있습니다. 또한 예외 처리를 반드시 할 필요도 없습니다.

명령

  • 예약된, 또는 정의되지 않은 자음 또는 모음을 사용했을 경우
    해당 명령은 무시됩니다. 명령의 진행은 가장 최근에 정상적으로 처리된 명령의 진행 방향대로 진행됩니다.
  • 특정 명령을 사용할 수 없는 대상에 명령을 사용했을 경우
    해당 명령은 무시됩니다. 명령의 진행은 가장 최근에 정상적으로 처리된 명령의 진행 방향대로 진행됩니다.
  • 무시되었으나 진행 방향이 정의되지 않은 명령의 경우
    가장 최근에 정상적으로 처리된 명령의 진행 방향대로 진행됩니다.

입력

  • 정수 또는 소수 입력을 요청했으나 사용자가 문자 또는 문자열을 입력했을 경우
    • 정수 또는 소수를 입력할 때까지 계속 입력을 요청합니다. 기존 입력은 버립니다.
    • 문자 또는 문자열을 적절히 변환하여 정수 또는 소수처럼 사용합니다.
  • 문자 입력을 요청했으나 사용자가 두자리 이상의 0 이상의 정수 또는 음의 정수 또는 소수를 입력했을 경우
    • 문자 또는 한자리 0 이상의 정수를 입력할 때까지 계속 입력을 요청합니다.
    • 숫자를 적절히 변환하여 문자처럼 사용합니다.
  • 문자 입력을 요청했으나 사용자가 문자열을 입력했을 경우
    • 문자를 입력할 때까지 계속 입력을 요청합니다.
    • 문자열의 가장 앞부분 문자를 사용합니다.
      • 문자열의 나머지 부분은 버립니다.
      • 문자열의 나머지 부분은 보관합니다.
  • 입력을 요청했으나 더 이상 입력을 받을 수 없는 상황인 경우
    • 정수 입력을 요청했을 경우 0, 소수 입력을 요청했을 경우 NaN, 문자 입력을 요청했을 경우 Null 문자, 문자열 입력을 요청했을 경우 빈 문자열을 입력받은 것으로 처리합니다. (until v1.1)
    • 정수 또는 문자 입력을 요청했을 경우 -1, 소수 입력을 요청했을 경우 -1.0, 문자열 입력을 요청했을 경우 빈 문자열을 입력받은 것으로 처리합니다. (since v2.0)
  • 문자열 입력을 요청했으나 가장 첫번째 문자가 공백 문자일 경우
    빈 문자열을 입력한 것으로 처리합니다. 공백 문자는 ASCII 값 0x20(' '), 0x0C('\f'), 0x0A('\n'), 0x0D('\r'), 0x09('\t'), 0x0B('\v')에 해당하는 문자입니다.

형 변환

  • 올바르지 않은 타입끼리 사칙 연산 또는 비트 연산, 문자열 연산을 시도했을 경우
    연산을 위해 필요했던 값들은 뽑혀지고, 선택된 저장공간의 가장 마지막에 사칙 연산 및 비트 연산의 경우 0, 문자열 연산의 경우 빈 문자열이 추가됩니다.
  • 올바르지 않은 타입끼리 대소 비교 연산을 시도했을 경우
    연산을 위해 필요했던 값들은 뽑혀지고, 중성의 진행 방향의 반대로 진행합니다.
  • 올바르지 않은 타입으로의 출력을 시도했을 경우
    출력을 위해 필요했던 값은 뽑혀지고, 값이 출력되지는 않습니다.

저장공간

  • 명령을 수행하기 위한 피연산자가 부족한 경우
    해당 명령은 무시됩니다. 명령의 진행은 가장 최근에 정상적으로 처리된 명령의 진행 방향대로 진행됩니다.
Clone this wiki locally