Moin moin
Ich brauche mal eine Hilfe / Idee wie ich mit einer Fehlerbehandlung weiter umgehen kann / muss / soll.
Folgendes: Beim Starten des Programmes wird geprüft ob die "Settings.XML" vorhanden ist. Wenn nicht, wird diese mit Default-Werten neu erstellt. Diese Defaultwerte kann / sollte der User dann für seine Zwecke ändern.
Dazu erstelle ich noch ein Formular, welches die Werte dann in die entsprechenden Felder der Class schreibt.
Die Load-Class schreibt die Werte dann beim Starten in die Felder der Class und die Eingabe-Textboxen des Forms.
Zur Frage:
Wie gehe ich weiter vor, wenn hier:
Oder hole ich hier die Werte aus den Eingabe-Textboxen und nicht aus der Class
Oder eine ganz andere Vorgehensweise
Spoiler anzeigen
PS: Ich nutze gerade zum Testen ein Laptop mit Windows 10 und VS 2019 ( Für mich eine Herausforderung )
Ich brauche mal eine Hilfe / Idee wie ich mit einer Fehlerbehandlung weiter umgehen kann / muss / soll.
Folgendes: Beim Starten des Programmes wird geprüft ob die "Settings.XML" vorhanden ist. Wenn nicht, wird diese mit Default-Werten neu erstellt. Diese Defaultwerte kann / sollte der User dann für seine Zwecke ändern.
Dazu erstelle ich noch ein Formular, welches die Werte dann in die entsprechenden Felder der Class schreibt.
Die Load-Class schreibt die Werte dann beim Starten in die Felder der Class und die Eingabe-Textboxen des Forms.
Zur Frage:
Wie gehe ich weiter vor, wenn hier:
Public Sub GetEnvironmentData()
ein Fehler auftritt Oder hole ich hier die Werte aus den Eingabe-Textboxen und nicht aus der Class
Oder eine ganz andere Vorgehensweise
Die Save-Class
Die Default-Class
Die Load-Class:
Die Save-Class
VB.NET-Quellcode
-
- ' Eine Methode zum Speichern der aktuellen Anwendungseinstellungen in einer XML-Datei
- Public Class SaveSettings
- Private Const SuccessMessage As String = "Die Programm-Konfiguration wurden erfolgreich in {0} gespeichert."
- Private Const FailureSaveMessage As String = "Fehler beim Speichern der Programm-Konfiguration in die Datei {0}{1}{2}."
- Private Const FailureGetMessage As String = "Fehler beim Laden der Programm-Konfiguration aus der Klasse."
- ' Umgebungsvariablen holen
- Public Sub GetEnvironmentData()
- Try
- ' Pfad zur XML-Datei aus der Umgebungsinformationen abrufen
- Dim filePath As String = EnvironmentManager.Instance.XmlFilepath
- ' Quell- und Ziel-Laufwerke aus der Umgebungsinformationen abrufen
- Dim sourceDrive As String = EnvironmentManager.Instance.SourceDrive
- Dim targetDrive As String = EnvironmentManager.Instance.TargetDrive
- SaveSettings(filePath, sourceDrive, targetDrive)
- Catch ex As Exception
- ' Fehler protokollieren
- GlobalEventLogger.ExceptionToFile(String.Format(FailureGetMessage, NewCrlLf, ex.Message), ExceptionStatus.Failure)
- End Try
- End Sub
- Private Sub SaveSettings(filePath As String, sourceDrive As String, targetDrive As String)
- Try
- ' Ein neues XmlDocument-Objekt erstellen
- Dim xmlDoc As New XmlDocument()
- ' Das Wurzelelement für die Einstellungen erstellen
- Dim rootNode As XmlNode = xmlDoc.CreateElement("Application")
- xmlDoc.AppendChild(rootNode)
- ' Das Element für die Laufwerkeinstellungen erstellen
- Dim settingsNode As XmlNode = xmlDoc.CreateElement("DriveSettings")
- rootNode.AppendChild(settingsNode)
- ' Die Quelllaufwerk-Einstellung speichern
- Dim sourceNode As XmlNode = xmlDoc.CreateElement("SourceDrive")
- sourceNode.InnerText = sourceDrive
- settingsNode.AppendChild(sourceNode)
- ' Die Ziel-Laufwerk-Einstellung speichern
- Dim targetNode As XmlNode = xmlDoc.CreateElement("TargetDrive")
- targetNode.InnerText = targetDrive
- settingsNode.AppendChild(targetNode)
- ' Die XML-Datei speichern
- xmlDoc.Save(filePath)
- ' Erfolgsmeldung protokollieren
- GlobalEventLogger.ExceptionToFile(String.Format(SuccessMessage, filePath), ExceptionStatus.Success)
- Catch ex As Exception
- ' Fehler protokollieren
- GlobalEventLogger.ExceptionToFile(String.Format(FailureSaveMessage, filePath, NewCrlLf, ex.Message), ExceptionStatus.Failure)
- End Try
- End Sub
- End Class
Die Default-Class
VB.NET-Quellcode
-
- ' Eine Methode zum Speichern der Standart Anwendungseinstellungen in eine XML-Datei
- Public Class DefaultSettings
- Private Const SuccessMessage As String = "Die Basis-Konfiguration wurde erfolgreich in {0} gespeichert."
- Private Const FailureMessage As String = "Fehler beim Speichern der Basis-Konfiguration in der XML-Datei {0}{1}{2}."
- Private Const NewFileMessage As String = "Die Datei für die Programmeinstellungen war nicht vorhanden.{0}Eine neue Datei wurde erstellt."
- Public Sub CreateDefaultXmlFile()
- ' Pfad zur XML-Datei erstellen
- Dim filePath As String = EnvironmentManager.Instance.XmlFilepath
- ' Meldung für eine neue Datei protokollieren
- GlobalEventLogger.ExceptionToFile(String.Format(NewFileMessage, NewCrlLf), ExceptionStatus.Notice)
- Try
- ' XML-Datei erstellen
- Using writer As New XmlTextWriter(filePath, System.Text.Encoding.UTF8)
- writer.Formatting = Formatting.Indented
- ' Beginnen des Dokuments
- writer.WriteStartDocument()
- ' Wurzelelement und Unterlemente erstellen
- writer.WriteStartElement("Application")
- writer.WriteStartElement("DriveSettings")
- writer.WriteElementString("SourceDrive", "C:\")
- writer.WriteElementString("TargetDrive", "C:\")
- ' Endtag für Elemente schreiben
- writer.WriteEndElement()
- writer.WriteEndElement()
- ' Dokument schließen
- writer.WriteEndDocument()
- End Using
- ' Erfolgsmeldung protokollieren
- GlobalEventLogger.ExceptionToFile(String.Format(SuccessMessage, filePath), ExceptionStatus.Success)
- Catch ex As Exception
- ' Fehler protokollieren
- GlobalEventLogger.ExceptionToFile(String.Format(FailureMessage, filePath, NewCrlLf, ex.Message), ExceptionStatus.Failure)
- End Try
- End Sub
- End Class
Die Load-Class:
VB.NET-Quellcode
-
- ' Eine Methode zum Laden der Anwendungseinstellungen aus einer XML-Datei
- Public Class LoadSettings
- Private Const SuccessMessage As String = "Das Laden der Programm-Konfiguration aus der XML-Datei {0} war erfolgreich."
- Private Const FailureMessage As String = "Fehler beim Laden der Programm-Konfiguration aus der XML-Datei {0}{1}{2}."
- Public Sub LoadSettings()
- ' Pfad zur XML-Datei erstellen
- Dim filePath As String = EnvironmentManager.Instance.XmlFilepath
- Try
- ' Ein neues XmlDocument-Objekt erstellen und die XML-Datei laden
- Dim xmlDoc As New XmlDocument()
- xmlDoc.Load(filePath)
- ' Das Element für die Laufwerkeinstellungen auswählen
- Dim settingsNode As XmlNode = xmlDoc.SelectSingleNode("//DriveSettings")
- If settingsNode IsNot Nothing Then
- ' Die Quelllaufwerk-Einstellung laden
- Dim sourceDriveNode As XmlNode = settingsNode.SelectSingleNode("SourceDrive")
- If sourceDriveNode IsNot Nothing AndAlso Not String.IsNullOrEmpty(sourceDriveNode.InnerText) Then
- EnvironmentManager.Instance.SourceDrive = sourceDriveNode.InnerText
- Else
- EnvironmentManager.Instance.SourceDrive = Nothing
- End If
- ' Die Ziel-Laufwerk-Einstellung laden
- Dim targetDriveNode As XmlNode = settingsNode.SelectSingleNode("TargetDrive")
- If targetDriveNode IsNot Nothing AndAlso Not String.IsNullOrEmpty(targetDriveNode.InnerText) Then
- EnvironmentManager.Instance.TargetDrive = targetDriveNode.InnerText
- Else
- EnvironmentManager.Instance.TargetDrive = Nothing
- End If
- End If
- ' Erfolgsmeldung protokollieren
- GlobalEventLogger.ExceptionToFile(String.Format(SuccessMessage, filePath), ExceptionStatus.Success)
- Catch ex As Exception
- ' Fehler protokollieren
- GlobalEventLogger.ExceptionToFile(String.Format(FailureMessage, filePath, NewCrlLf, ex.Message), ExceptionStatus.Failure)
- End Try
- End Sub
- End Class
PS: Ich nutze gerade zum Testen ein Laptop mit Windows 10 und VS 2019 ( Für mich eine Herausforderung )
Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen.