วิธีการตรวจจับข้อยกเว้น ใน Visual Basic 2005 หรือ ใน Visual Basicสุทธิ

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 301283 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับ Microsoft Visual C# 2005 และ Microsoft Visual C#สุทธิรุ่นของบทความนี้ ดู308345.

สำหรับรุ่น Microsoft Visual Basic 6.0 ของบทความนี้ ให้ดู191474.
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

Catching และกับข้อยกเว้นคือ มาตรฐาน งานการเขียนโปรแกรม บทความนี้อธิบายเกี่ยวกับวิธีการใช้คำลอง-catch-นำบล็อกเพื่อตรวจจับข้อยกเว้น Aลอง-catch-นำบล็อกเป็นแรปเปอร์แบบ "สำหรับ" ที่คุณย้ายไปรอบ ๆ รหัสใด ๆ ที่จะ มีความเป็นไปได้ของข้อยกเว้น

Aลอง-catch-นำบล็อกประกอบด้วยส่วนต่าง ๆ ต่อไปนี้:
  • มีวางอยู่ภายในรหัสใด ๆ ที่อาจมีข้อยกเว้นที่อยู่นอกกระบวนการลองบล็อก
  • ถ้ามีส่งข้อยกเว้นตรวจจับมีป้อนบล็อก และโปรแกรมสามารถดำเนินการที่เหมาะสม การดำเนินการกู้คืน หรือการแจ้งเตือนผู้ใช้
  • รหัสในการในท้ายที่สุดบล็อกเสมอจะดำเนินการ และสามารถทำการล้างข้อมูลหลังจากการ ข้อยกเว้นเกิดขึ้น ที่ในท้ายที่สุดบล็อกหรือไม่ก็

ความต้องการ

ให้คำอธิบายรายการต่อไปนี้เกี่ยวกับฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่คุณต้องการ:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server Windows 2000 Server หรือ Microsoft Windows NT 4.0 Server การขั้นสูง
  • Microsoft Visual Basic หรือ Microsoft Visual Basic 2005สุทธิ

ตัวอย่างทีละขั้นตอน

  1. สร้างแอพลิเคชันคอนโซลใหม่ ใน Visual Basic 2005 หรือ ใน Visual Basicสุทธิ
  2. Wordpad ในกระบวนการย่อยหลัก ที่แทรกรหัสตัวอย่างที่ ต่อไปนี้ ตัวอย่างการประกาศ และสร้างตัวแปรสาม wherein การเตรียมใช้งาน "k" ทำให้เกิดข้อผิดพลาด
    ' 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. กดแป้น F5 เพื่อดูข้อยกเว้น
  4. ตัดคำลอง catchคำชี้แจงรอบ ๆ ของคุณให้รหัสข้อผิดพลาดในการจับภาพ ต่อไปนี้ รหัสข้อผิดพลาดทั้งหมดที่ส่งในรหัส และแสดงแบบทั่วไป ที่ catches ข้อความแสดงข้อผิดพลาด แทนโค้ดในกระบวนงานหลักย่อยกับข้อความต่อไปนี้ รหัส
    ' 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. กด CTRL + F5 เพื่อเรียกใช้โครงการ สังเกตว่า ข้อผิดพลาด ข้อความจากนั้นตรวจจับบล็อกจะปรากฏขึ้น
  6. ถ้าล้างข้อมูลบางอย่างหรือ post-processing ที่จำเป็นต้องทำ คำนึงถึงข้อผิดพลาด ใช้ในท้ายที่สุดส่วนของการลอง-catch-นำคำชี้แจง รหัสในการในท้ายที่สุดเป็นส่วนหนึ่งของคำสั่งเสมอปฏิบัติ คำนึงถึงการมี ข้อยกเว้น รหัสต่อไปนี้แสดง "คำชี้แจงนี้ถูกพิมพ์เสมอ" คอนโซล แม้ว่าไม่มีข้อผิดพลาดเกิดขึ้น การแทนรหัสย่อยหลักด้วยการ รหัสต่อไปนี้
    ' 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. กด CTRL + F5 เพื่อเรียกใช้โครงการ
  8. คุณสามารถใช้วัตถุข้อยกเว้นที่อยู่กับตรวจจับคำชี้แจงเพื่อดึงข้อมูลรายละเอียดเกี่ยวกับข้อยกเว้น ข้อยกเว้น มีหมายเลขของคุณสมบัติที่ช่วยให้คุณระบุ ช่วย แหล่งที่มา หรือแม้กระทั่ง สแตกการรายละเอียดเกี่ยวกับข้อยกเว้น ข้อมูลนี้จะมีประโยชน์มากสำหรับ การติดตามลงสาเหตุเดิมของข้อยกเว้นหรือการนำเสนอได้ดีขึ้น คำอธิบายของแหล่งที่มาของ ตัวอย่างต่อไปนี้ catches ข้อยกเว้น และแสดง ข้อความข้อผิดพลาดที่ระบุ เป็นก่อน คุณสามารถแทนโค้ดในหลักย่อย กระบวนงานที่ มีรหัสต่อไปนี้

    ตัวอย่างที่ 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
    					
    ตัวอย่างที่ 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 exception
    Finally   ' This section is performed regardless of the above processing.
            Console.WriteLine()
            Console.WriteLine("This statement is always printed")
    End Try
    					
  9. จนถึงจุดนี้ คุณมีชาญเฉพาะกรณี ของมีข้อยกเว้นการไม่ใช่เฉพาะ อย่างไรก็ตาม ถ้าคุณทราบใน เลื่อนอะไรชนิดของ ข้อยกเว้นที่มีกำลังจะเกิดขึ้น คุณสามารถตรวจจับข้อยกเว้นที่คาดการณ์ไว้ และ ประมวลผลได้อย่างเหมาะสม คุณสามารถใช้หลายตรวจจับบล็อกอื่น ๆ ทั้งหมดยกเว้นการตรวจจับ และจัดการกับเหล่านั้นเช่นเดียวกัน ตัวอย่างต่อไปนี้อธิบายเกี่ยวกับนี้
    Module Module1
    Sub 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 reasons
    
    Catch 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 Try
    End Sub
    End Module
    เนื่องจากการตั้งค่าคอนฟิกของคอมพิวเตอร์อาจแตกต่างกัน ตัวอย่างนี้ ขั้นตอนที่อาจ หรืออาจอยู่นอกกระบวนการข้อยกเว้น ถ้าคุณต้องการบังคับให้มีข้อยกเว้นการ IO เปลี่ยนเส้นทางของแฟ้มไปยังโฟลเดอร์ที่มีอยู่ในของคุณ คอมพิวเตอร์

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม ดู MicrosoftNET Framework ซอฟต์แวร์ Development Kit (SDK)

คุณสมบัติ

หมายเลขบทความ (Article ID): 301283 - รีวิวครั้งสุดท้าย: 28 มกราคม 2554 - Revision: 3.0
ใช้กับ
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Keywords: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB301283 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:301283

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com