GnuSmalltalkUsersGuide:BaseChapter 150

From 흡혈양파의 번역工房
Jump to: navigation, search
Signal

Signal

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: Object

범주: 언어-예외


나의 인스턴스들은 발생한 예외를 설명하고, 예외 처리기로 전달된다. 생성된 예외와 그 인자에 관한 정보를 포함하는 것 외에도 당신이 실행을 재개하고, #on:do:... snippet을 남겨두며, 낮은 우선순위의 처리기로 예외를 전달할 수 있도록 해주는 메서드를 포함한다.


Signal: 접근하기

argument

수신자의 첫 번째 인자를 응답하라.

argumentCount

수신자가 얼마나 많은 인자를 갖고 있는지 응답하라.

arguments

수신자의 인자를 응답하라.

basicMessageText

예외의 메시지 텍스트를 응답하라. 해당 메서드를 오버라이드 하지 말라.

description

발생한 예외의 설명을 응답하라.

exception

발생한 CoreException을 응답하라.

messageText

예외의 메시지 텍스트를 응답하라.

messageText: aString

예외의 메시지 텍스트를 설정하라.

tag

예외의 태그 값을 응답하라. 명시되지 않은 경우 메시지 텍스트와 같다.

tag: anObject

예외의 태그 값을 설정하라. Nil인 경우 태그 값은 메시지 텍스트와 같을 것이다.


Signal: built-ins

resignalAsUnhandled: message

이는 디버거를 시작시킬 수도 있다...#printOn: 는 오류를 호출할 수 있으므로 #basicPrint를 사용함을 주목하라.


Signal: 복사하기

postCopy

수신자가 인스턴스화된 예외 처리기를 참조하지 않도록 수정하라.


Signal: 예외 처리

context #on:do

snippet에 대한 실행 컨텍스트를 리턴하라.

defaultAction

발생한 예외에 대한 기본 처리기를 실행하라.

isNested

현재 예외 처리기가 같은 예외에 대한 다른 처리기의 범위 내에 있는지 응답하라.

isResumable

수신자를 인스턴스화한 예외가 재개 가능한지 응답하라.

outer

수신자를 인스턴스화한 예외를 발생시켜 동일한 매개변수를 전달하라. 수신자가 재개 가능하고 평가된 예외 액션이 재개될 경우, #outer에서 리턴된 결과는 평가된 예외 액션의 재개 값일 것이다. 수신자가 재개 가능하지 않거나 예외 액션이 재개되지 않는 경우 해당 메시지는 리턴하지 않을 것이며, #outer는 #pass와 동등해질 것이다.

pass

수신자에 대한 enclosing 예외 액션에 제어를 생성하라. #outer와 비슷하지만 현재 활성화된 예외 처리기로 제어가 복귀되지 않는다.

resignalAs: replacementException

모든 처리기를 회복시키고 처리기를 'replacementException'로 실행하라; 현재 활성화된 예외 처리기로 제어가 복귀되지 않는다. 새로 생성된 Signal 객체는 수신자와 같은 인자를 갖는다 (올바를 수도, 그렇지 않을 수도 있다 - 올바르지 않을 경우 당신은 'sig retryUsing: [replacementException signal ]과 같은 문구를 사용할 수 있다.)

resume

예외가 재개 가능한 경우 예외를 발생시킨 블록의 실행을 재개하라; 예외의 시그널링에 사용된 메서드는 수신자를 응답할 것이다. 해당 메서드는 누가 예외를 야기했는지 알고 있을 때에만, 그리고 특정 사례에서 재개 가능한 경우에 사용한다.

resume: anObject

예외가 재개 가능한 경우 예외를 발생시킨 블록의 실행을 재개하라; 예외의 시그널링에 사용된 메서드는 anObject를 응답할 것이다. 해당 메서드는 누가 예외를 야기했는지 알고 있을 때에만, 그리고 특정 사례에서 재개 가능한 경우에 사용한다.

retry

#on:do: 메시지의 수신자를 재실행하라. 모든 처리기는 회복된다: 쉽게 무한 루프를 야기할 수 있으므로 주의하라.

retryUsing: aBlock

모든 처리기를 회복하면서 aBlock을 평가하고, #signal 메서드로부터 그 결과를 리턴하라.

return

#on:do: snippet을 종료하고 그 호출자에게 nil을 응답하라.

return: anObject

#on:do: snippet을 종료하고 그 호출자에게 nil을 응답하라.


Notes