例如,通過在聲明時實例化,可以避免以下情況下可能的運行時空例外。例如,Dim s as String = ""
我們是否有理由允許運行時異常的可能性? s
也許是""
?這不是一個家庭作業問題。我只是好奇。允許某些運行時異常通過的原因是什麼?
Public Function X() As String
Dim s as String
Dim sMethod As String = X
Try
Dim vowels() As String = {"a", "e", "i", "o", "u"}
For Each vowel As String In vowels
s = "0"
Next
Catch ex As Exception
Throw System.Exception(ex)
End Try
Return s
End Function
- 編輯拋出異常
的Visual Studio似乎是足夠的智慧告訴我們,「A空引用異常可能會導致在運行。」這意味着一些有能力的專業開發人員忽略了此警告這使我認爲這一定是有原因的。開發者們已經開始了,但我不能問他們。這可能是我無法理解的基本原理。如果您願意,請幫助我理解這一點。 (我不能是唯一一個想知道這個的人。)
編譯器不夠聰明,發現「s」變量總是要分配的,即使它沒有被初始化。不要*寫*像這樣的Try/Catch語句,當你的程序不正常時,它會給你帶來很大的麻煩,而沒有辦法找出原因。 –
感謝您的評論,@HansPassant。我很抱歉,但我不完全瞭解你。你能否詳細說明一下? – One
@RBarryYoung:如果未初始化,則'String'變量的值爲Nothing。所以你*可以*得到一個異常。 – Neolisk