[VB.Net] IOException greift nicht?

01/11/2014 20:38 maxasoft#1
Hey,

ich habe mit folgendem Code ein Problem:

Quote:
Try
Dim sw As New StreamWriter(".\vocs", True)
sw.WriteLine(voc)
sw.Close()
Catch ex As IOException
Return False
Catch ex As Exception
Return False
End Try
Und zwar wird er von mehreren Threads benutzt, somit kommt es ab & zu zur IO-Exception, allerdings wird diese dann nicht abgefangen und die Funktion mit False zurückgegeben, sondern das Programm stürzt ab & Visual Basic zeigt die Zeile Dim sw As New StreamWriter(".\vocs", True) als fehlerhaft an, obwohl ich die IOException behandelt habe.

Hat jmd ne Ahnung warum?

MfG,

maxasoft
01/12/2014 00:08 qkuh#2
Sicher, dass die Exception die ausgelöst wird, auch eine IOException ist?
01/12/2014 00:51 maxasoft#3
Ja, ganz sicher ;)
01/14/2014 12:56 beefm4ker#4
Hast du mal im Debugger geschaut was genau er denn auszusetzen hat? Ansonsten mal mal nen Screen davon was er denn an deinem Codeschnipsel auszusetzen hat.
01/14/2014 17:17 Easy-Emu#5
Quote:
Originally Posted by maxasoft View Post
Hey,

ich habe mit folgendem Code ein Problem:



Und zwar wird er von mehreren Threads benutzt, somit kommt es ab & zu zur IO-Exception, allerdings wird diese dann nicht abgefangen und die Funktion mit False zurückgegeben, sondern das Programm stürzt ab & Visual Basic zeigt die Zeile Dim sw As New StreamWriter(".\vocs", True) als fehlerhaft an, obwohl ich die IOException behandelt habe.

Hat jmd ne Ahnung warum?

MfG,

maxasoft
Wenn es 'ab & zu' zu einer Exception kommt, weil du mit mehreren Threads IO Operationen ausfuehrst, solltest du deinen Code nochmal vollstaendig ueberdenken und falls du mit mehreren Threads an der selben Datei arbeitest (vorallem schreiben), empfehle ich dir mal mit einer Queue zu arbeiten. Ansonsten wirst du immer Probleme haben.

MFG
Fabian
01/15/2014 11:31 dready#6
Easy-Emu triffts aufn Punkt, Exceptions abfangen ist kein sinnvoller Bugfix hier :P

[Only registered and activated users can see links. Click Here To Register...]

Für den Moment würd ich das Ding einfach Locken und damit sicherstellen das jeweils nur ein Thread drauf zugreift. Vorsichtig mit umgehn, kann logischerweise zu Deadlocks füren.

Zu deinem Catch, catch mal alles, würd mich nicht wundern wenns keine IOException ist die es Crasht. Threads gleichzeitig auf sowas zugreifen zu lassen ist meist nen recht guter Weg Fehler einzubauen die ekligst nachzuvollziehn sind ;)