例如,通过在声明时实例化,可以避免以下情况下可能的运行时空例外。例如,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