예외 처리 후 정리를 시도하고 StreamWriter를 처리하는 방법을 잘 모르겠습니다.예외가 발생하는 동안 StreamWriter를 정리하는 방법은 무엇입니까?
Dim sw As StreamWriter
Try
''// stuff happens
somethingBad1() ''//Sometimes throws an exception
sw = New StreamWriter(File.Open("c:\tmp.txt", FileMode.Create))
''// stuff happens
somethingBad2() ''//Also sometimes throws an exception
sw.Write("Hello World")
sw.Flush() ''//Flush buffer
sw.Close() ''//Close Stream
Catch ex As Exception
sw = Nothing
Finally
sw = Nothing
end try
somethingBad1가 예외를 던진다면, 나는
sw
에 아무것도 할 필요가 없습니다
; 그러나 somathignBad2가 발생하면 sw
이 이미 생성되었으며이를 닫아야합니다. 그러나 sw
이 생성되었는지 여부를 어떻게 알 수 있습니까?
그런데 'Catch'와'Finally' 블록은 의미가 없습니다. 변수를'Nothing'으로 설정하면'sw'이 지역 변수 인 경우 실제로 아무런 도움이되지 않습니다 (특히' t "도움"GC). 또한, 'Finally'는 블록이 예외없이 떠나는 지 여부에 관계없이 실행되므로'Catch '에 중복 기능이 필요하지 않습니다. –