Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để sử dụng cấu trúc ngoại lệ xử lý trong Visual Basic.NET hay Visual Basic 2005

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: 315965
TÓM TẮT
Bài viết này chứng tỏ làm thế nào để sử dụng cấu trúc ngoại lệ xử lý trong Visual Basic.NET hay Visual Basic 2005.

back to the top

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 bản ghi dịch vụ mà bạn cần:
  • Visual Basic.NET hoặc Visual Basic 2005
Bài viết này giả định rằng bạn đã quen thuộc với các chủ đề sau:
  • Visual Basic.NET hoặc Visual Basic 2005
  • Microsoft Visual Studio.NET hoặc Microsoft Visual Studio 2005
back to the top

Cấu trúc ngoại lệ xử lý

Visual Basic.NET hoặc Visual Basic 2005 cung cấp cấu trúc ngoại lệ xử lý mà cung cấp một thay thế mạnh mẽ, dễ đọc hơn để quản lý lỗi "On Error Goto", mà là có sẵn trong phiên bản trước của Microsoft Visual Basic. Xử lý có cấu trúc ngoại lệ là mạnh hơn bởi vì nó cho phép bạn để làm tổ lỗi xử lý bên trong các bộ xử lý lỗi trong các thủ tục tương tự. Hơn nữa, có cấu trúc ngoại lệ xử lý sử dụng một cú pháp khối tương tự như nếu...Khác...Kết thúc nếu tuyên bố. Điều này làm cho Visual Basic.NET và Visual Basic 2005 mã dễ đọc hơn và dễ dàng hơn để duy trì.

Lưu Ý: Visual Basic.NET hoặc Visual Basic 2005 giữ lại cú pháp "On Error Goto" cho tương hợp về sau ngược. Bạn vẫn có thể sử dụng cú pháp này trong Visual Basic.NET hay Visual Basic 2005 mã. Tuy nhiên, bạn không thể kết hợp xử lý ngoại lệ có cấu trúc và phát biểu Về lỗi trong các thủ tục tương tự. Khi bạn viết mã mới, Microsoft khuyến cáo bạn sử dụng cấu trúc xử lý ngoại lệ.

Cú pháp cơ bản của cấu trúc lỗi xử lý là như sau:
Try   'Code that may raise an error.Catch   'Code to handle the error.Finally   'Code to do any final clean up.End Try				
Hãy thửKết thúc thử phát biểu được yêu cầu. Những điều khoản bắtcuối cùng là không cần thiết, mặc dù bạn phải bao gồm ít nhất một trong số họ trong mã của bạn. Bạn cũng có thể xác định nhiều bắt câu để cho mỗi khối bắt xử lý một lỗi cụ thể.

back to the top

Bắt một ngoại lệ

  1. Bắt đầu Visual Studio.NET hoặc Visual Studio 2005.
  2. Tạo một dự án mới giao diện điều khiển ứng dụng trong Visual Basic.NET hay Visual Basic 2005.
  3. Trong thủ tục Phụ chính , thêm mã sau đây:
    Dim a As Integer = 0Dim b As Integer = 0Dim c As Integer = 0Try  a = b \ cCatch exc As Exception  Console.WriteLine("A run-time error occurred")Finally  Console.ReadLine()End Try					
  4. Trên trình đơn gỡ lỗi , nhấp Bắt đầu để chạy các ứng dụng. Mã cố gắng chia một số zero. Đây là một hoạt động bất hợp pháp mà gây ra một phân chia bằng số không là ngoại lệ. May mắn thay, khối bắt bắt lỗi này, và cửa sổ giao diện điều khiển sẽ hiển thị thông báo lỗi sau:
    A run-time error has occurred						
  5. Đóng cửa sổ giao diện điều khiển.
back to the top

Bắt nhiều trường hợp ngoại lệ

Phần này chứng tỏ làm thế nào để sử dụng nhiều bắt câu để xử lý các lỗi khác nhau.
  1. Mở dự án ứng dụng giao diện điều khiển mà bạn đã tạo trong phần trước.
  2. Trong thủ tục Phụ chính , thay thế mã mà bạn đã sao chép trong phần trước với đoạn mã sau:
    Dim a As Integer = 2147483647Dim b As Integer = 0Dim c As Integer = 0Try  a += 1Catch exc As DivideByZeroException  Console.WriteLine("Error: Divide by zero")Catch exc As OverflowException  Console.WriteLine("Error: Overflow")Finally  Console.ReadLine()End Try						
    Mã này bao gồm hai bắt khối: một để đón sự phân chia trước bằng số không lỗi, và một để bắt lỗi tràn mới.
  3. Trên trình đơn gỡ lỗi , nhấp Bắt đầu để chạy các ứng dụng. Cửa sổ giao diện điều khiển sẽ hiển thị thông báo lỗi sau:
    Error: Overflow						
  4. Đóng cửa sổ giao diện điều khiển.
  5. Bởi vì bạn luôn luôn không thể dự đoán mọi lỗi có thể xảy ra, bạn có thể thêm một nắm bắt tất cả các khối cho trường hợp ngoại lệ unanticipated. Ví dụ, thêm mã sau đây trước khi tuyên bố cuối cùng để nắm bắt bất kỳ lỗi unanticipated và hiển thị các thông báo lỗi thích hợp:
    Catch exc As ExceptionConsole.WriteLine("Error: " & exc.Message)					
  6. Trên menu tệp , bấm vào Giải pháp đóng.
back to the top

Ném ngoại lệ

Cấu trúc ngoại lệ xử lý sử dụng các báo cáo bắt để đón một ngoại lệ. Cấu trúc ngoại lệ xử lý cũng cung cấp một cách để ném một ngoại lệ. Ví dụ, nó rất hữu ích để ném một ngoại lệ khi bạn thực hiện kiểm soát dữ liệu bên trong một Bất động sản đặt thủ tục bởi vì bạn có thể muốn ném một lỗi nếu một quy tắc kinh doanh là vi phạm.
  1. Bắt đầu Visual Studio.NET hoặc Visual Studio 2005.
  2. Tạo một dự án mới giao diện điều khiển ứng dụng trong Visual Basic.NET hay Visual Basic 2005.
  3. Trên trình đơn dự án , nhấp Thêm lớp.
  4. Trong cửa sổ Add New Item , gõ clsPerson.vb trong tên hộp văn bản, và sau đó bấm OK.
  5. Thêm mã sau bên trong công cộng lớp clsPerson...Kết thúc lớp phát biểu:
    Private mintAge As IntegerPublic Property Age() As Integer  Get    Age = mintAge  End Get  Set(ByVal Value As Integer)    If Value >= 0 Then      mintAge = Value    Else      Throw New ArgumentException ("Age cannot be negative")    End If  End SetEnd Property						
    Mã này tạo ra một tài sản tuổi . Bởi vì một người không thể có một độ tuổi tiêu cực, một lỗi được đưa lên nếu người sử dụng lớp cố gắng thiết lập tuổi với một số đó là ít hơn zero.
  6. Trong thủ tục Phụ chính của Module1.vb, thêm mã sau đây:
    Dim p As New clsPerson()Try  p.Age = -1Catch exc As Exception  Console.WriteLine(exc.Message)Finally  Console.ReadLine()End Try					
  7. Trên trình đơn gỡ lỗi , nhấp Bắt đầu để chạy các ứng dụng. Cửa sổ giao diện điều khiển sẽ hiển thị thông báo lỗi sau:
    Age cannot be negative						
  8. Đóng cửa sổ giao diện điều khiển.
back to the top

Danh sách mã đầy đủ

Bắt một ngoại lệ

Module Module1  Sub Main()    Dim a As Integer = 0    Dim b As Integer = 0    Dim c As Integer = 0    Try      a = b \ c    Catch exc As Exception      Console.WriteLine("A run-time error occurred")    Finally      Console.ReadLine()    End Try  End SubEnd Module				
back to the top

Bắt nhiều trường hợp ngoại lệ

Module Module1  Sub Main()    Dim a As Integer = 2147483647    Dim b As Integer = 0    Dim c As Integer = 0    Try      a += 1    Catch exc As DivideByZeroException      Console.WriteLine("Error: Divide by zero")    Catch exc As OverflowException      Console.WriteLine("Error: Overflow")    Catch exc As Exception      Console.WriteLine("Error: " & exc.Message)    Finally      Console.ReadLine()    End Try  End SubEnd Module				
back to the top

Ném ngoại lệ

Module Module1  Sub Main()    Dim p As New clsPerson()    Try      p.Age = -1    Catch exc As Exception      Console.WriteLine(exc.Message)    Finally      Console.ReadLine()    End Try  End SubEnd ModulePublic Class clsPerson  Private mintAge As Integer  Public Property Age() As Integer    Get      Age = mintAge    End Get    Set(ByVal Value As Integer)      If Value >= 0 Then        mintAge = Value      Else        Throw New ApplicationException("Age cannot be negative")      End If    End Set  End PropertyEnd Class				
back to the top

TÀI LIỆU THAM KHẢO

Để biết thêm chi tiết, chỉ để sau Microsoft web site web:
Lỗi xử lý VB.NET cách: Sống với trường hợp ngoại lệ (một Nhà phát triển Visual Basic bài)
http://MSDN.Microsoft.com/en-US/Library/aa227603 (v=vs.60) .aspx

Làm thế nào tôi bắt một ngoại lệ
http://MSDN.Microsoft.com/en-US/Library/ys1b32h3 (v=vs.80) .aspx

Làm thế nào tôi ném một ngoại lệ
http://MSDN.Microsoft.com/en-US/Library/z7w9ff54 (v=vs.80) .aspx

back to the top

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

Thuộc tính

ID Bài viết: 315965 - Xem lại Lần cuối: 06/15/2012 08:48: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 KB315965 KbMtvi
Phản hồi