2014-07-18 2 views

답변

3

내가 그렇게한다면, 나는 디버거를 얻는다.

[대본 폭발] 에 : aMessage 메시지

+0

대답 해 주셔서 감사합니다. :) 내가 한 일은 당신이 제안한대로 doesNotUnderstand를 오버라이드하는 것입니다. – Kilon

+0

'# messageNotUnderstood '를 너무 가볍게 사용하지 마십시오. 1. 제어 흐름이 추적하기 어려워 질 수 있으며, 2. 클래스 계층 구조와 모든 예외 처리기를 통과 한 후 마지막 수단이며 특정 조건에서 느려질 수 있습니다. –

+0

파이썬 코드를 pharo 코드로 구문 분석하여 문자열처럼 사용하고 있습니다 -> Bpy 데이터 오브젝트 : 'Cube'location : '(1.0 2.0 3.0)'은 파이썬 문자열로 바뀝니다 'bpy.data.objects ['Cube ' ] .location = (1.0 2.0 3.0) '그러면 파이썬 코드로 실행됩니다. 당신이 더 나은 대안을 가지고 있다면 나는 모든 귀입니다. – Kilon

4

이 시도를하다 aMessage : 제목은 내가 첫 번째 요소를 선택하면, 나는 doesNotUnderstand를 볼 수 있습니다

MessageNotUnderstood: ThreadSafeTranscript>>explode 

있다 : MessageNotUnderstood do : [: ex | ex message selector]

예외 메시지는 Message의 인스턴스입니다. 선택기 인수 등을 이해합니다.

예외는 epiphenomenon입니다. VM는 실제로 메시지를 이해하지 못하면 doesNotUnderstand : aMessage를 보내고 Object의 doesNotUnderstand : 메서드는 예외를 발생시킵니다. doesNotUnderstand :의 인수는 메시지이며 예외의 경우와 마찬가지로 저주합니다. 즉, 특별한 요구 사항이있는 경우 자신의 클래스에 고유 한 doesNotUnderstand : 메시지를 구현할 수 있습니다.

+0

저에게 도움이 너무 감사합니다 :) – Kilon