방법: Visual Basic에서 I/O Try...Catch 블록 구현
다음 코드 예제에서는 Exception 및 IOException과 IOException에서 파생된 모든 예외를 처리하는 Try...Catch 블록을 구현합니다.
예제
이 예제에서는 가장 구체적인 예외부터 가장 일반적인 예외의 순서로 각 예외를 차례대로 테스트해 봅니다.
이 코드 예제는 IntelliSense 코드 조각으로도 사용할 수 있습니다. 이 코드 조각은 코드 조각 선택기의 파일 시스템 - 드라이브, 폴더 및 파일 처리에 있습니다. 자세한 내용은 방법: IntelliSense 코드 조각 삽입을 참조하십시오.
Try
' Add code for your I/O task here.
Catch dirNotFound As System.IO.DirectoryNotFoundException
' Code to handle DirectoryNotFoundException.
Catch fileNotFound As System.IO.FileNotFoundException
' Code to handle FileNotFoundException.
Catch pathTooLong As System.IO.PathTooLongException
' Code to handle PathTooLongException.
Catch ioEx As System.IO.IOException
' Code to handle IOException.
Catch security As System.Security.SecurityException
' Code to handle SecurityException.
Catch ex As Exception
' Rethrow exception if anything else has occurred.
Throw ex
Finally
' Dispose of any resources you used or opened in the Try block.
End Try
코드 컴파일
실행할 코드를 Try 블록에 추가합니다.
강력한 프로그래밍
이 코드 블록을 기초로 사용하여 Try...Catch 문에서 데이터 작업을 래핑할 수 있습니다. 이 Try...Catch 블록은 모든 예외를 catch하고 다시 throw하도록 디자인되었습니다. 프로젝트에 따라 이 블록이 적합하지 않을 수도 있습니다. 예외 처리 옵션에 대한 자세한 내용은 IntelliSense 코드 조각 사용에 관한 최선의 방법을 참조하십시오.
사용자가 올바른 파일 이름만 선택하도록 제한하는 OpenFileDialog 구성 요소(Windows Forms) 및 SaveFileDialog 구성 요소(Windows Forms) 컨트롤 등의 Windows Forms 컨트롤을 사용하여 예외가 발생할 가능성을 줄일 수 있습니다. FileInfo.Exists 속성으로 파일을 열기 전에 해당 파일이 있는지 여부를 확인할 수 있습니다. 그러나 이러한 컨트롤과 클래스를 사용하는 것이 아주 쉽지만은 않습니다. 사용자가 파일을 선택한 후부터 코드가 실행되기 전까지의 시간 동안 파일 시스템이 변경될 수도 있기 때문입니다. 따라서 파일 관련 작업에는 거의 항상 예외 처리가 필요합니다.
보안
대부분의 파일 작업에서 어셈블리에는 FileIOPermission 클래스에서 부여한 권한 수준이 필요합니다. 부분 신뢰 컨텍스트에서 실행 중인 경우에는 불충분한 권한 때문에 코드에서 예외를 throw할 수 있습니다. 자세한 내용은 코드 액세스 보안 기본 사항을 참조하십시오. 파일이 있는 경우 해당 파일에 대한 액세스 권한도 사용자에게 있어야 합니다. 자세한 내용은 ACL 기술 개요를 참조하십시오.
파일 확장명을 바탕으로 파일 내용을 판단하면 안 됩니다. 예를 들어, Form1.vb 파일이 Visual Basic 소스 파일이 아닐 수도 있습니다.
참고 항목
작업
방법: Visual Basic에서 Catch 블록의 오류 필터링
방법: 예외의 내부 예외 검사(Visual Basic)
참조
Try...Catch...Finally 문(Visual Basic)
개념
IntelliSense 코드 조각 사용에 관한 최선의 방법
구조적 및 비구조적 예외 처리를 사용하는 시기 선택(Visual Basic)