2012-04-03 77 views
0

我發現VBScript中的錯誤處理存在問題,所以我想使用C#代碼(COM)修復此問題。在這裏,我需要在c#.net代碼中訪問VBScript的Err對象。我沒有將參考命名空間VBScript_Global添加到項目中,但VBScript_Global.ErrObj是一個抽象類,因此無法訪問它。有沒有一種方式,C#代碼可以看Err.Number。如何在C#代碼中訪問VBScript的Err對象

讓我更加清楚, 在VB6中,我們有On Error GoTo,如果出現運行時錯誤,它會自動下載到錯誤處理代碼中,我們可以在那裏報告錯誤並執行相應的操作。

.net和Java也是如此(它可能是try/catch)。

在VBScript中,我們有On Error Resume Next(它不支持GoTo)。 On Error Resume Next將控制器移至下一個語句並繼續執行。在這裏,我們需要明確地檢查代碼中每個語句之後是否有Err.number <> 0,這是不可行的。

所以我想在VBScript中使用通用的方法,如果有運行時錯誤,那麼我應該能夠以某種方式報告它。

我想在c#.net中編寫一個DLL,它總是檢查VBScript的Err.Number,並在發生錯誤時進行報告。這可能嗎?或者我的方法是錯誤的? 任何其他替代建議/想法來處理這種情況表示讚賞。謝謝。

如果dll無法做到我在找的東西,有沒有一種方法可以隨時檢查VBScript的Err.number是否不在VBScript外?

+1

你如何從你的C#代碼執行VBScript代碼?如果使用Process類,而不是ExitCode屬性,則無法獲取任何有用的錯誤信息。這通常是足夠的。 – 2012-04-03 14:13:19

+0

「VBScript中的錯誤處理問題」究竟是什麼?爲什麼你決定通過添加另一個組件來解決問題,而不是防止原始問題? – 2012-04-03 18:51:42

回答

1

VBScript在單獨的環境中執行。您無法訪問VBScript之外的內部VBScript對象,或更適合的Windows腳本宿主。

相關問題