如何使用指令碼控制項 Error 物件

文章翻譯 文章翻譯
文章編號: 184742 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您 「 指令碼控制錯誤物件屬性,並提供說明其用法的範例程式碼。

其他相關資訊

指令碼控制項 Error 物件提供給主機應用程式與指令碼錯誤相關的豐富資訊。支援下列屬性:
   Property         Description
   -----------------------------------------------------------------
   Number           Error number.
   Description      Error message.
   Line             The line number the error occurred on (1 based).
   Column           The column number the error occurred on (0 based).
   Text*            The text of the line that caused the error.
   Source**         What component caused the error.
   HelpFile***      Help file name provided by the error source.
   HelpContext***   Help context provided by the error source.
				

* [文字] 屬性是空白的執行階段錯誤,但包含編譯錯誤的資料。

如 VBScript 的 「 資料來源] 屬性是 Microsoft VBScript 編譯錯誤或 Microsoft VBScript Run-Time 錯誤。如果使用不同的指令碼語言,則 [來源可能會不同。

正在說明檔案] 和 [HelpContext 屬性是空白,除了對使用者引發錯誤。

重要: Microsoft 提供程式設計範例僅,為了說明不提供任何明示或默示的保證,包括但不是限於適售性以及適合某特定用途之默示擔保責任。本文假設您已熟悉我們所示範的程式設計語言,以及用來建立和偵錯程序的工具。

雖說是逐步範例

  1. 在 Visual Basic 建立新的專案 (Form1 建立根據預設值)。
  2. 按一下 [元件],請在 [專案] 功能表上,然後選取 ["Microsoft 指令碼控制 1.0 」] 核取方塊。
  3. 將指令碼控制項 (ScriptControl1)]、 [文字方塊 (文字 1)] 和 [指令按鈕 (Command1) 加入 Form1。將文字方塊的多行的屬性設定為 TRUE。為了使用方便,變更文字 1 的大小,讓它所能容納 5 行以每 60 字元。
  4. 將下列程式碼加入至 Form1:
          Private Sub Command1_Click()
            On Error Resume Next
            With ScriptControl1
              .Language = "VBScript"
              .AllowUI = True
              .AddCode Text1.Text
              .Run "Test"
            End With
            If Err Then
              MsgBox Err & " " & Error
              ListErrors ScriptControl1
            End If
          End Sub
    
          Private Sub ListErrors(S As ScriptControl)
            With S.Error
              Debug.Print "Number:", .Number
              Debug.Print "Source:", .Source
              Debug.Print "Desc:", .Description
              Debug.Print "Line: " & .Line, "Column: " & .Column
              Debug.Print "Text:", .Text
              Debug.Print "Help File:", .HelpFile
              Debug.Print "Help Context:", .HelpContext
              Debug.Print
            End With
          End Sub
    
    						
  5. 執行 Form1,然後開啟 [偵錯] 視窗。
  6. 在 [文字] 方塊中鍵入下列指令碼:
          Sub Test
            MsgBox == "Hello World"
            Err.Raise 555, "Test", "Custom Error", "test.hlp", 5
          End Sub
    
    						
  7. 按一下 [命令] 按鈕。下列的錯誤會出現在 [偵錯] 視窗 (實際輸出可能不同,視您使用的指令碼控制項的版本) 中的結果:
          Number:       1002
          Source:       Microsoft VBScript compilation error
          Desc:         Syntax error
          Line: 2       Column: 16
          Text:         MsgBox == "Hello World"
          Help File:
    
          Help Context:  0
    
    						
  8. 移除 「 從 MsgBox 列 = =,然後按 [命令] 按鈕一次。
  9. [MsgBox 出現,然後錯誤 「 555 自訂錯誤 」。偵錯] 視窗會顯示下列:
          Number:       555
          Source:       Test
          Desc:         Custom Error
          Line: 3       Column: 8
          Text:
          Help File:    test.hlp
          Help Context: 5
    
    						
    注意: 資料行數目可能不同,視是否您剪下和貼上程式碼或以手動方式輸入它中不包含所有前置空格。

?考

指令碼控制項的 [說明] 主題: Error 物件

取得指令碼控制項的相關資訊,請參閱 「 Microsoft 知識庫 」 中下列文件:
184739: 資訊: 何處取得指令碼控制

(c) [Microsoft Corporation 1998 年,[保留所有的權限]。藉由所佔的比重 Malcolm Stewart,微軟公司

屬性

文章編號: 184742 - 上次校閱: 2004年7月13日 - 版次: 3.1
這篇文章中的資訊適用於:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic for Applications 5.0
關鍵字:?
kbmt kbgrpdsvb kbhowto kbscript kbvbp KB184742 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:184742
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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