GnuSmalltalkUsersGuide:BaseChapter 069
- Exception
Exception
네임스페이스 Smalltalk에 정의됨
슈퍼클래스: Signal
범주: 언어-예외
- 예외는 CoreExceptions와는 다른 방식으로 예외적 이벤트의 특성을 정의한다. 객체의 계층구조를 생성하고 객체의 속성을 설정하는 대신 클래스의 계층구조를 생성하여 그 클래스에서 메서드를 오버라이드한다; 공통 클래스 Signal의 인스턴스 대신 그러한 클래스의 인스턴스가 처리기로 전달된다.
내부적으로 Exception와 그것의 모든 서브클래스는 CoreException를 고수하므로 두 개의 메커니즘은 사실상 서로 교대로 사용된다.
Exception 클래스: 비교
goodness: anException
수신자가 주어진 예외를 얼마나 잘 처리하는지를 응답하라. 음수값은 수신자가 예외를 처리할 수 없음을 의미한다.
handles: anException
수신자가 'anException'을 처리하는지 여부를 응답하라.
Exception 클래스: ExceptionCollections 생성하기
, aTrappableEvent
수신자 내의 모든 예외와 TrappableEvent 내의 모든 예외를 포함하는 ExceptionCollection을 응답하라.
Exception 클래스: 초기화
initialize
중앙 예외 처리 시스템과 ANSI 예외 처리 시스템 간 '링크'를 초기화하라.
Exception 클래스: 인스턴스 생성
new
추후에 시그널링이 가능한 수신자의 인스턴스를 생성하라.
signal
수신자의 인스턴스를 생성하고 그것에게 기본 속성을 부여한 후 즉시 시그널링하라.
signal: messageText
수신자의 인스턴스를 생성하고 그 메시지 텍스트를 설정하여 즉시 시그널링하라.
Exception 클래스: TrappableEvents와의 상호운용성
allExceptionsDo: aBlock
Private - coreException 를 aBlock으로 전달하라.
coreException
Private - 수신자의 인스턴스를 표현하는 coreException을 응답하라.
Exception: 비교
= anObject
수신자가 anObject와 같은지 여부를 응답하라. 수신자 또는 그것의 coreException이 anObject와 같은 객체일 경우 true가 된다.
hash
수신자에 대한 해시값을 응답하라.
Exception: 예외 설명
defaultAction
수신자에 부착된 기본 액션을 실행하라.
description
예외에 관한 텍스트 설명을 응답하라.
isResumable
true를 응답하라. 예외는 기본적으로 재개가능하다.
Exception: 예외 시그널링
signal
수신자가 표현한 예외 이벤트를 발생시켜라.
signal: messageText
수신자가 표현한 예외 이벤트를 발생시키고 그 메시지 텍스트를 messageText로 설정하라.