无缘无故地获得未发现的错误

时间:2015-08-23 03:26:49

标签: vb.net visual-studio

我对visual basic相当新,所以它可能是显而易见的,但我认为没有理由抛出这个异常错误。这是问题代码:

    Public Sub textBoxFilePath_TextChanged(sender As Object, e As EventArgs) Handles textboxFilePath.TextChanged
    If textboxFilePath.Text.Trim.Length > 0 Then
        If My.Computer.FileSystem.FileExists(textboxFilePath.Text) Then
            Dim checkType As String
            checkType = System.IO.Path.GetExtension(textboxFilePath.Text)
            If checkType = ".xlsx" Or ".xls" Or ".xlsm" Then
                requiredPath = True
            Else
                requiredPath = False
            End If
        End If
        End If

我得到的错误是

  

未处理的类型' System.InvalidCastException'发生在Microsoft.VisualBasic.dll

     

附加信息:从字符串转换" .xls"输入'布尔'无效。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

If checkType = ".xlsx" Or checkType = ".xls" Or checkType = ".xlsm" Then
    requiredPath = True
Else
    requiredPath = False
End If

您的代码试图评估“.xls”(这是一个字符串),它不能很好地转换为布尔值true / false。

你也可以这样做来应用“短路”,所以只评估第一个是真的

If checkType = ".xlsx" OrElse checkType = ".xls" OrElse checkType = ".xlsm" Then
    requiredPath = True
Else
    requiredPath = False
End If