Làm thế nào để đón ngoại lệ trong Visual Basic 2005 hoặc trong Visual Basic.NET

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:301283
Đối với Microsoft Visual C# 2005 và Microsoft Visual C#.NET Phiên bản của bài viết này, xem 308345.

Để có một phiên bản Microsoft Visual Basic 6.0 của bài viết này, xem 191474.
TÓM TẮT
Đánh bắt và đối phó với ngoại lệ là một tiêu chuẩn lập trình công việc. Bài viết này chứng tỏ làm thế nào để sử dụng một cuối cùng thử-bắt-đã khối để đón một ngoại lệ. Một cuối cùng thử-bắt-đã khối là một wrapper"" mà bạn đặt xung quanh bất kỳ mã nơi các khả năng xảy ra một ngoại lệ tồn tại.

Một cuối cùng thử-bắt-đã khối bao gồm những phần sau:
  • Bất kỳ mã có thể ném một ngoại lệ được đặt bên trong các Hãy thử khối.
  • Nếu một ngoại lệ được ném, các bắt khối được nhập vào, và chương trình có thể thực hiện nhaán chiến dịch để phục hồi hoặc cảnh báo người sử dụng.
  • Mã số trong các cuối cùng khối luôn luôn bị hành quyết và có thể thực hiện dọn sạch sau khi một ngoại lệ đã xảy ra. Các cuối cùng khối là tùy chọn.

Yêu cầu

Danh sách sau vạch ra được đề nghị phần cứng, phần mềm, cơ sở hạ tầng mạng và gói dịch vụ mà bạn cần:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, hoặc máy chủ Microsoft Windows NT 4.0
  • Microsoft Visual Basic 2005 hoặc Microsoft Visual Basic.NET

Ví dụ-by-step

  1. Tạo một ứng dụng giao diện điều khiển Visual Basic 2005 hoặc trong Visual Basic.NET.
  2. Trong thủ tục phụ chính, chèn mã mẫu mà sau. Các mẫu tuyên bố và khởi ba biến, mà trong đó các khởi tạo "k" gây ra một lỗi.
    ' This code generates an exception.	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line.					
  3. Bấm phím F5 để xem là ngoại lệ.
  4. Quấn một cố gắng nắm bắt tuyên bố trên mã của bạn để nắm bắt các lỗi. Sau đây Mã bắt tất cả các lỗi được ném ra trong mã và hiển thị một chung thông báo lỗi. Thay thế mã trong thủ tục phụ chính với sau Mã.
    ' This code shows how to catch an exception.Try	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.Catch	Console.WriteLine("An error occurred.")End Try
  5. Nhấn CTRL + F5 để chạy các dự án. Nhận thấy rằng các lỗi thông điệp từ các bắt khối sẽ được hiển thị.
  6. Nếu một số dọn dẹp hoặc chế biến cần phải làm bất kể của một lỗi, sử dụng các cuối cùng là một phần của các cuối cùng thử-bắt-đã tuyên bố. Mã số trong các cuối cùng một phần của các tuyên bố là luôn luôn bị hành quyết, bất kể của một ngoại lệ. Đoạn mã sau hiển thị "tuyên bố này là luôn luôn được in" trong bàn điều khiển, ngay cả khi không có lỗi xảy ra. Thay thế mã phụ chính với các mã sau đây.
    ' This code shows how to catch an exception.	Try	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.Catch	Console.WriteLine("An error occurred.")Finally   ' This section is performed regardless of the above processing.	Console.WriteLine()	Console.WriteLine("This statement is always printed")End Try					
  7. Nhấn CTRL + F5 để chạy các dự án.
  8. Bạn có thể sử dụng các đối tượng ngoại lệ với các bắt tuyên bố để lấy thông tin chi tiết về ngoại lệ. Một ngoại lệ có một số tài sản có thể giúp bạn xác định giúp, nguồn, hoặc thậm chí ngăn xếp thông tin về một ngoại lệ. Thông tin này có thể rất hữu ích cho theo dõi xuống nguyên nhân gốc của ngoại lệ hoặc cung cấp một tốt hơn giải thích về nguồn gốc của nó. Các mẫu sau bắt một ngoại lệ và cho một thông báo lỗi cụ thể. Như trước, bạn có thể thay thế mã trong chính Sub thủ tục với đoạn mã sau.

    Ví dụ 1
    ' This code shows how to catch an exception.Try	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.Catch e As Exception  ' Perform code that deals with the exception                      ' or informs the user what occurred.	Console.WriteLine("The following error occurred:")	Console.WriteLine(e.ToString())  ' Print the error message to the user.Finally   ' This section is performed regardless of the above processing.	Console.WriteLine()	Console.WriteLine("This statement is always printed")End Try					
    Ví dụ 2
    ' This code shows how to catch an exception.Try	Console.WriteLine("We're going to divide 10 by 0 and see what happens...")	Console.WriteLine()	Dim i as Integer = 10	Dim j as Integer = 0	Dim k As Integer = i/j ' Error on this line. Control jumps to the catch block.Catch e As Exception  ' Perform code that deals with the exception                      ' or informs the user what occurred.        Console.WriteLine("The following error occurred:")        Console.WriteLine( e.Message )     ' Print the error message.        Console.WriteLine( e.Source )      ' Name of application or object                                           ' that caused the error        Console.WriteLine( e.StackTrace )  ' String that contains the stack                                            ' trace for this exceptionFinally   ' This section is performed regardless of the above processing.        Console.WriteLine()        Console.WriteLine("This statement is always printed")End Try					
  9. Cho đến thời điểm này, bạn có xử lý với trường hợp cụ thể của một ngoại lệ không cụ thể. Tuy nhiên, nếu bạn biết trước những gì loại ngoại lệ sẽ xảy ra, bạn có thể bắt ngoại lệ dự đoán và quá trình cho phù hợp. Sau đó, bạn có thể dùng nhiều Bắt khối để nắm bắt tất cả các trường hợp ngoại lệ và đối phó với họ là tốt. Các mẫu sau đó chứng tỏ điều này.
    Module Module1Sub Main()' Attempt to do some file processing.' This can cause a number of potential exceptions.' Note that you can use the specific exceptions to get extra information about that exception,' but this example focuses on showing control execution for those exceptions.Try	File.Create("c:/temp/test.txt")  ' Can fail for a number of reasonsCatch ioe As System.IO.IOException ' This error may occur if the Temp folder does not exist.	Console.WriteLine("An IO error occurred. The c:\temp folder does not exist")Catch se As System.Security.SecurityException ' You do not have the appropriate permission                                              ' to take this action.	Console.WriteLine("You don't have the security permissions to take this action!")Catch e As Exception    ' Catch all other exceptions.	Console.WriteLine( e.ToString() )  ' Print the standard exception information.End TryEnd SubEnd Module
    Bởi vì máy tính cấu hình có thể khác nhau, các mẫu ở đây bước có thể hoặc có thể không ném một ngoại lệ. Nếu bạn muốn ép buộc một ngoại lệ IO, thay đổi đường dẫn của tệp vào một thư mục mà không có trên của bạn máy tính.
THAM KHẢO
Để biết thêm chi tiết, xem Microsoft.NET Framework Phần mềm bộ phát triển (SDK).
Lỗi xử lý thử... bắt... cuối cùng

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 301283 - Xem lại Lần cuối: 08/26/2011 11:37:00 - Bản sửa đổi: 2.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB301283 KbMtvi
Phản hồi