"sum"이라는 작은 토크 msg는 배열의 요소 합계를 반환합니다.유효하지 않은 입력 예외 처리 - SmallTalk
예 # (1 2 3 4 5) 합 ----> 15
입력이 # (1 2 'A'3-5) 합이다. 실행이 종료되고 큰 예외 상자가 표시됩니다. 대신 메시지를 표시하여 실행을 정상적으로 종료 할 수 있습니다. 큰 예외 창을 표시하고 싶지 않습니다.
sum
|sum|
sum := 0
self do: [:a | sum := sum + a]
^sum
다음과 같은 예외를 처리하려고했습니다. 그러나 잘못된 입력이있을 경우 실행이 종료되지 않습니다. 아래의 코드가 작업 공간에 배치되어있는 경우, 내가 실행을 예상
sum
|sum|
sum := 0
self do: [:a |
(a isInteger) ifFalse:[
^[Error signal] on: Exception
do: [:ex | Transcript show: 'Entered values are non-numeric. Hence comparison is not possible.']
]
sum := sum + a
]
^sum
은 그러나, 3 호선도 실행지고 라인 (2)에서 종료된다. | temp | 임시 직원 : = # (1 2 3 ''4 5) sum. temp : = temp * 5.