Elikkä olen kyhännyt pientä irc bottia, mutta eräänä kauniina päivänä botti alkoi kaatua aina kun ohjelma suorittaa edellä olevan pätkän string n (s.substr(i+6));
ja komentoriville tulee teksti
"This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."
Oudoksi tämän ongelman tekee se että ennen ohjelma toimi hyvin, vaikka siinä oli tuo sama koodinpätkä.
Stringin substr-metodi laukaisee assertion jostain syystä. Todennäköisesti merkkijono "s" on lyhyempi, kuin "i+6".
Kiitoksia, se tosiaan oli lyhempi. Vain pieni typerä virhe jota sai miettiä päivä tolkulla. Mutta mikä tuo assertio on?
Todennäköisesti assert-makro, joka löytyy standarti-kirjastosta <cassert>. Debuggauksen ollessa päällä assertille välitetty lauseke tarkistetaan, ja jos se on false, keskeytetään ohjelman suoritus välittömästi. Siis:
assert( pituus < 10 );
Aihe on jo aika vanha, joten et voi enää vastata siihen.