vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Fehlerbehandlung 
Autor: 10085998
Datum: 17.02.06 15:54

Hallo Leute,

Zuallererst: Die relevanten Code-Fragmente sind unten angehängt.

Nun zum eigentlichen Problem:
Ich habe eine Anwendung geschrieben, die Threads benutzt.
Die Anwendung funktioniert auch wunderbar bis auch die Fehlerbehandlung.
Ich habe im Thread ein Try, catch eingebaut, das den Fehler in einer Errorlog-Datei mitloggen soll.
Dies klappt auch im Grunde hervorragend.
Nur ist es so, dass wenn 2 gleichzeitig laufende Threads im selben Moment einen Fehler verursachen, der eine Thread die errorlog-Datei noch öffnen kann, der andere Thread beim Versuch diese Datei zu öffnen eine Fehler verursacht, da die Errorlog-Datei gerade vom anderen Thread benutzt wird.
Jetzt meine Fragen:
a) Kennt jemand eine Möglichkeit zu überprüfen ob die Datei schon geöffnet ist, damit ich den catch-Block soweit umbauen kann, dass dieser mit dem Öffnen der Datei solange wartet, bis die Datei wieder freigegeben ist.
b) Wenn in einem Catch-Block ein Fehler auftritt, kann ich in diesem Block wiederum eine Try, catch Routine einbauen um diesen Fehler abzufangen? Kann man Try, catch Routinen im catch-Block öfters ineinander verschachteln?
c) Hat jemand eine bessere Idee, wie ich das gewünschte realisieren kann, nämlich dass die einzelnen Threads ihre Fehlermeldungen in einer Datei mitloggen, aber sich bei diesem Dateizugriff nicht gegeneinander stören?

Ich hoffe hier kann mir jemand von euch weiterhelfen.

vielen Dank im voraus

Gerd

Klassenfragment:

Option Strict Off
Option Explicit On
Imports System
Imports System.IO
Imports System.Threading
 
 
Class TestThread
Const errorfilename = "error.txt"
 
  Public Sub TestThread()
     Dim th As Thread
 
    'Initialisiert und startet den Thread
     th = New Thread(New ThreadStart(AddressOf Run))
     th.Start()
  End Sub
 
  Public Sub Run()
     Dim L
 
    Try
        'Hier steht der Hauptcode
 
    Catch ex As Exception
        L = FreeFile()
        FileOpen(L, errorfilename, OpenMode.Append)
        PrintLine(L, ex.ToString())
        FileClose(L)
    End Try
  End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Fehlerbehandlung9951008599817.02.06 15:54
Re: Fehlerbehandlung603Dirk17.02.06 16:22
Re: Fehlerbehandlung541sico17.02.06 16:24
Re: Fehlerbehandlung569ModeratorDaveS17.02.06 17:12
Re: Fehlerbehandlung5701008599817.02.06 18:21
Re: Fehlerbehandlung630ModeratorDaveS17.02.06 18:46
Re: Fehlerbehandlung5741008599820.02.06 10:25
Re: Fehlerbehandlung611ModeratorDaveS20.02.06 10:54
Re: Fehlerbehandlung588Tenschman20.02.06 23:32
Re: Fehlerbehandlung552ModeratorDaveS21.02.06 09:09
Re: Fehlerbehandlung556Blacky22.02.06 17:17
Re: Fehlerbehandlung561ModeratorFZelle22.02.06 20:18
Re: Fehlerbehandlung564ModeratorDaveS23.02.06 09:41

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel