Avoimen lähdekoodin ohjelmointikieli Rubiini on tunnettu selkeästä syntaksistaan ja helppokäyttöisyydestään. Tämä ei tarkoita, ettet joskus törmää virhesanomaan. Yksi häiritsevimmistä on NameError-aloittamaton jatkuva poikkeus, koska sillä on useita syitä. Poikkeuksen syntaksi noudattaa tätä muotoa:
Voit etsiä koodiasi vianetsinnällä tutkimalla sitä mahdollisesti edellä luetelluista syistä kerrallaan. Jos löydät ongelman, korjaa se. Selaa esimerkiksi koodia etsimällä eroa isojen ja pienten kirjainten käytössä muuttujissa ja luokissa. Jos löydät sellaisen ja korjaat sen, ongelma on todennäköisesti ratkaistu. Jollei niin ole, jatka muiden mahdollisten syiden selvittämistä asettamalla asiat menemällä.
Jos luokassa, johon viitat koodissa, on toisessa moduulissa, viitata siihen sen täydellä nimellä seuraavasti:
Poikkeuksia ovat se, miten Ruby kiinnittää huomion koodin ongelmiin. Kun koodissa tapahtuu virhe, poikkeus "nostetaan" tai "heitetään" ja ohjelma sammuu oletuksena.
Ruby julkaisee poikkeushierarkian ennalta määritettyjen luokkien kanssa. NameErrors ovat StandardError-luokassa yhdessä RuntimeError, ThreadError, RangeError, ArgumentError ja muiden kanssa. Tämä luokka sisältää suurimman osan tavanomaisista poikkeuksista, joita kohtaat tyypillisissä Ruby-ohjelmissa.