Search
Duplicate
⚠️

ObjectDisposedException

Created time
2023/10/04 04:16
Last edited time
2024/04/23 08:12
Status
Done
tag

들어가기에 앞서

참고한 자료를 바탕으로 비전문가가 정리한 글이므로 오류가 있을 수 있습니다.
오류에 대한 지적 사항은 언제든지 환영합니다. 부디 댓글로 알려주시길 바랍니다. 감사합니다.

에러의 원인

윈도우폼 버튼 이벤트리스너에 대한 기능 구현 중 위와 같은 에러를 만났다.
처음 버튼을 클릭해서 화면을 뛰우는거 자체는 문제가 없었는데, 창을 닫고 다시 버튼을 누르면 위와 같은 에러가 생기며 어플리케이션이 강제 종료되었다.
전역 변수로 불러오고자 하는 객체를 선언(test)하고 해당 객체의 Run 메소드를 이용해 호출하려 했으나, 위와 같은 문제가 발생한 것이다.
Public Class frmGA5231 Private test As New TEST10 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click test.Run(A, B) End Sub End Class
VB.Net
복사
.NET 공식 문서에서는 해당 오류가 “삭제된 개체”에서 연산이 수행될 때 throw되는 예외라고 한다.
즉, test개체는 한번 연산 수행 후 삭제가 되었다고 추정된다.

Trouble Shooting

나는 아주 단순하게 문제를 해결했다. 삭제가 되었다면 재할당하면 그만이라고 생각했다.
따라서, 아래와 같이 TEST10 타입의 객체를 재할당하여 문제를 해결하였다.
Public Class frmGA5231 Private test As New TEST10 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click test.Run(A, B) test = New TEST10 End Sub End Class
VB.Net
복사

참고