결론부터 말하면 그런방법은 없다.
있는 줄 알고 계속 찾다보니 외국 포럼에 있는 애들이 다른 대안을 제시해주었다;;
-------------------------------------------------------------
Dim c As New Collection
Dim 학생(6) As New Student
Dim t_학생 As New Student
On Error Resume Next
For i = 1 To 3
j = i * 2 - 1
학생(j).이름 = "학생" + CStr(j)
학생(j).번호 = j
Set t_학생 = c.Item(학생(j).이름)
If Err <> 0 Then
'에러발생
End If
c.Add Item:=학생(j), Key:=학생(j).이름
j = i * 2
학생(j).이름 = "학생" + CStr(j)
학생(j).번호 = j
Set t_학생 = c.Item(학생(j).이름)
If Err <> 0 Then
'에러발생
End If
c.Add Item:=학생(j), Key:=학생(j).이름
Next
For i = 1 To c.Count
Set t_학생 = c.Item(i)
Debug.Print "이름= " + t_학생.이름 + ", 번호= " + CStr(t_학생.번호)
Next
Debug.Print
For i = 1 To 6
Set 학생(i) = Nothing
Next
Set t_학생 = Nothing
Set c = Nothing
-------------------------------------------------------------
위의 소스는 콜렉션 객체 c에
("학생1", 1), ("학생2", 2), ("학생3", 3), ... ("학생6", 6) 을 넣는 예제이다.
한 프로시저에서 두 개 이상의 에러가 기대될 때, (에러가 기대되는 지점은 노란색으로 표시했다)
On Error Goto Err1, On Error Goto Err2 이런식으로 따로 쓴다면 에러가 난다.
꼼수는 On Error Resume Next 를 써줘서 에러가 났을 때 에러를 무시하고 바로 다음줄로 가게 하는 것이다. 에러처리는 If Error <> 0 Then 으로 처리할 수 있을 것이다.
참고로 위의 소스는 Visual Basic 6.0을 바탕으로 만들었다.
별로 예쁜 소스는 아니니 태클은 금지 ( ..)
유용한 정보/컴퓨터2009. 7. 21. 02:40