gpt4 book ai didi

.net - 尝试在.net中捕获

转载 作者:行者123 更新时间:2023-12-03 08:03:01 25 4
gpt4 key购买 nike

我一直在寻找最有效,最优雅的方法来做到以下几点:

  • 文件名有效,已损坏,不存在时可以调用我的函数

  • 该函数只会反序列化XML对象。

    主要的可能结果是:
  • OK
  • 文件不存在
  • XML文件中的
  • 错误

    如果以这种方式编写,则在文件损坏的情况下不会关闭阅读器。
    如果我在finally块中编写了reader.close(),它会在分配值之前给我有关使用read的警告。

    那么,我该如何解决这个问题呢?
    Public Function DeSerializzaXML(ByVal FileName As String, ByRef tmpObj As Object, ByVal tmpClass As Type) As Boolean
    Dim serializer As XmlSerializer
    Dim reader As StreamReader
    Dim tmpSuccess As Boolean = False
    Try
    serializer = New XmlSerializer(tmpClass)
    reader = New StreamReader(FileName)
    tmpObj = serializer.Deserialize(reader)
    reader.Close()
    tmpSuccess = True
    Catch ex As Exception
    AggiungiRigaSuFile(ErroriPath, FileName + ", " + ex.Message, Configurazione.DiagnosticaOff, True)
    Finally

    End Try

    Return tmpSuccess
    End Function

  • 最佳答案

    只是使用Nothing初始化阅读器,如果不是Nothing,则将其放置在finally块中:

    Dim reader As StreamReader = Nothing
    Try
    ...
    Finally

    If reader IsNot Nothing Then

    reader.Dispose();

    End If

    End Try

    由于我很少使用VB.NET,因此我不太确定语法,请自己修复所有错误。代码的思想应该很清楚。

    关于.net - 尝试在.net中捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9128303/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com