Hei
Lisäsin rivin koodia ja ohjelma toimii kuin riviä ei olisi olemassakaan. Breakpoin tiksi mekkaamistakaan ei noteeraa laisinkaan.
Onko VB:ssä nyt joku säätä pielessä vai mistä tämmöinen voisi johtua?
Onko kukaan törmännyt samaan?
Kai olet tallentanut muutoksen ja kääntänyt ohjelman? Valikossa lienee erikseen kohta Run, joka vain käynnistää ohjelman ilman uutta käännöstä, ja Compile and Run, joka ensin kääntää ohjelman.
Tämä ongelma tapahtuu jo debugging vaiheessa...
Kyllä se ohjelma pitää siinäkin vaiheessa kääntää. VB.NET ei ole tulkattava kieli.
Ohjelmaa olen tehnyt jo pidempään, mutta nyt tuli vastaan tälläinen ongelma, aikaisemmin kaikki on toiminut. VB 2010 professionalia käytän...
Ehkä kirjoittamasi koodirivi on virheellinen ja ohjelma ei siksi käänny enää (mutta sopivasta napista painamalla onnistut sitten ajamaan vanhan version).
Voisitko nyt joka tapauksessa etsiä valikosta kohda Compile, painaa siitä ja katsoa, mitä ilmoituksia käännösikkunaan tulee? Voisitko myös etsiä käännetyn ohjelmatiedoston (löytynee jostain projektin tallennushakemiston alta) ja suorittaa sen tuplaklikkaamalla?
Sorry uppouduin lukemaan putkasta pitkää keskustelua "Tekeekö hyvä kone koodista parempaa?" :)
Ja takaisin...
Ok. Nyt ohjelma näyttää vikailmoitukset ko. kohdassa. Miksiköhön se ei herjaa niistä beduggauksen yhteydessä?
Kiitos Metebolix, NULL:in lukeminen tietokannasta taitaa olla ongelmani, toivottavasti.
Joka tapauksessa ihmetyttää miksei se herjaa sitä debuggauksessa. Voisiko joku asetus olla pielessä??
Lisäys:
No niin. Vika on korjattu ja ohjelma toimii.
Osaako joku kerto miksi debuggaus ei pysähdy vikaan vaan jättää huomioimatta koko rivin?
Vika oli sqldatareaderin hakiessa arvoa kentästä jossa oli NULL. Vikaa ei ole enää kun tieto haettan vain, jos arvo ei ole NULL.
Olenko vahingoss säätänyt jonkin asetuksen vääräksi?
jokke568 kirjoitti:
Osaako joku kerto miksi debuggaus ei pysähdy vikaan vaan jättää huomioimatta koko rivin?
Yksi mahdollisuus on, että olet kääntänyt Release -tilassa. Release-käännöksissä koodia optimoidaan, jolloin yksittäistä koodiriviä ei välttämättä ole käännöksessä eikä sille voida silloin breakata. Virheeseen sen kyllä mielestäni silti pitäisi pysähtyä jos vaan ko. virheeseen pysähtyminen on päällä.
Mahdollista on myös tuo minkä Metabolix jo sanoikin, että muokkaamasi koodi ei käänny. Silloin kyllä se normaalisti sanoo että "kääntäminen epäonnistui, haluatko silti suorittaa?"
suoritetaanko pätkä try catch -lohkon sisällä, ja suoritettava rivi hyppääkin catchiin?
F10:llä saat stepattua askel askeleelta koodin suoritusta eteenpäin, kun koodi jää breakpointtiin.
groovyb: Ei ollut try catchin sisällä. F10:ä en olekaan käyttänyt, olen laittanut F9:llä monta riviä break pointiksi. Kiitos tiedosta.
Grez: Kokeilin Compile välilehdeltä vaihdella Configurationia Active(Debug), Debug ja Release vaihtoehdoilla. Jokaisella se jätti kokonaan kesken While rd.read silmukan koska sai rd.GetSqlBoolean(x) arvoksi NULL. Nyt tosiaan tarkistaa ensin ettei arvo ole NULL.
Grez kirjoitti:
Mahdollista on myös tuo minkä Metabolix jo sanoikin, että muokkaamasi koodi ei käänny. Silloin kyllä se normaalisti sanoo että "kääntäminen epäonnistui, haluatko silti suorittaa?"
Tälläistä ei ole herjannut. Mutta ilmoituksen "There were build errors. Would you like to continue and run the last succesful build?" - tälläisen ilmoituksen tullessa vika näkyy jo Error listauksessa ja helppo paikallistaa.
Nyt ajon aikana tapahtuvaan virheeseen ei pysähdytä vaan jätetään piittaamatta. Vastaavia tapauksia ollut tässä muutamia aikaisemminkin mutta silloin on vian löytänyt nopeasti. Aikaisemmin näihin VB pysähtyi.
Pari viikkoa sitten tytär oli koneella ja mm VB oli jäänyt auki. Likka oli summamutikassa hiirellä klikkaillut kaikkea kivan näköistä. Näytöllä oli avoimia ikkunoita vaikka kuinka paljon ja jos jonkin moista.. Olisko silloin sotkenut myös VB:n asetuksia.
No sieltähän on kyllä mahdollista määrittää Exceptions -ikkunasta (ctrl+alt+E) kaikkiin tai jopa yksittäisen poikkeuksen tarkkuudella että pysäytetäänkö kaikkiin lentäviin poikkeuksiin, koodissa käsittelemättömiin vai ei mihinkään.
Kiitos Grez.
Aihe on jo aika vanha, joten et voi enää vastata siihen.