'콜렉션 예제'에 해당되는 글 1건

  1. 2009.07.21 [Visual Basic] 한 프로시저 안에서 여러개의 On Error GoTo문 처리하기
유용한 정보/컴퓨터2009. 7. 21. 02:40

결론부터 말하면 그런방법은 없다.
있는 줄 알고 계속 찾다보니 외국 포럼에 있는 애들이 다른 대안을 제시해주었다;;
-------------------------------------------------------------
    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을 바탕으로 만들었다.
별로 예쁜 소스는 아니니 태클은 금지 ( ..)

Posted by Jyui