Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Virheiden käsittely

heikkju2 [15.09.2019 16:09:54]

#

Moro
Kertokaas mikä tässä on vikana kun on tarkoitus katsoa, löytyykö tuo tiedosto jos ei löydy, siirrytään seuraavaan aliohjelmaan: eli vika1 ja jos löytyy siikrrytään kohtaan jatka.

On Error GoTo vika1
            FileOpen(1, "C:\Program Files\Snap\Native.BAT", OpenMode.Input)
            FileClose(1)
            Dim ver = "PRO"
        Dim polku = "C:\Program Files\Snap\"
            GoTo jatka
vika1:

Grez [15.09.2019 16:27:04]

#

Siis onko tämän nyt tarkoitus olla VB6 vai VB.Net koodia?

VB.Netillä se toimisi varmaankin jotenkin

If System.IO.File.Exists("C:\Program Files\Snap\Native.BAT") Then
  'Jotain
Else
  'Muuta
End If

Virheiden käsittely VB.Netissä yleisesti

Try
    'Koodi joka voi aiheuttaa virheen

    'Suoritetaan jos ei virhettä
Catch ex As Exception
    'Suoritetaan jos virhe
End Try

heikkju2 [15.09.2019 16:32:03]

#

vb.net ja pitää kokeilla tuota kiitos

Grez [15.09.2019 16:36:19]

#

Sinänsä kai toi alkuperäinenkin koodi toimii (olettaen että jatka: -rivi löytyy jostain), mutta näyttää lähinnä joltain VB6:sta konekäännetyltä. Ihan konkreettisena virheenä pitäisi tuota kiinteän tiedostonumeron käyttämistä, joka voi koodin kasvaessa aiheuttaa ongelmia (siis kun pitäisi itse sitten varmistaa ettei päällekkäisiä numeroita käytetä). Muuten lähinnä kai huonoa koodaustyyliä.

heikkju2 [15.09.2019 17:05:57]

#

Grez kirjoitti:

(15.09.2019 16:36:19): Sinänsä kai toi alku­pe­räi­nenkin koodi toimii...

Kiitos tästä, ihan harraste pohjalla ja QB:n ja VB6.en jälkeen harjoittelemassa VB.Net:in käyttöä. ei ole kone kääntänyt ja kun numeroita olen tottunut käyttämään niin ei niistä pääse eroon eikä vielä ole tullut ongelmia niiden käytössä vaikka olen tätä jo parikymmentä vuotta harrastanut.

Grez [15.09.2019 17:09:52]

#

No VB6:kaan ei ollut oletuksena monisäikeinen ja sillä oli suht vaikea tehdä monisäikeistä ohjelmaa. Tosin jo QB:ssä muistaakseni (no VB:ssä ainakin) oli FreeFile, jolla sai selville vapaan tiedostunumeron.

VB.Net maailmassa vois melkein sanoa että parhaaseen lopputuloksen pääsee jos unohtaa kaiken VB6:sta ja QB:stä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta