Lejlighedsvis, vil en metode støder på en fejl , på hvilket tidspunkt det vil mislykkes, og fortælle dig om det via en mekanisme, der kaldes en undtagelse. I Ruby , når undtagelser er rejst ved en metode , der støder på en fejl vil du have redde dit program og håndtere fejlen. Instruktioner
smide en undtagelse
1
Skriv noget kode, der vil kaste en undtagelse , ved hjælp af raise erklæring. I Ruby vil raise opgørelse stoppe udførelsen af metode, så slappe af programmet.
2
Vedlæg opkaldet til denne metode i en matchende rednings erklæring. Ellers vil programmet slutter , og en fejlmeddelelse vil blive vist på terminalen. Følgende eksempel viser en gennemsnitsberegning funktion, som den, der findes i karakterbogen software.
3
Her er alle prøveresultater gennemsnit . Hvis resultatet er mere end 100% , er der intet andet valg end at rejse en undtagelse, fordi nogen har snydt : def gennemsnit ( num1 , num2 , num3 ) av = ( num1 + num2 + num3 ) /3.0if av > 100raise " Nogen snydt, gennemsnit # { av } " elsereturn avendend
Håndter Exception
4
Skriv redning erklæring , kalder gennemsnitsmetoden indkapslet i en blok med en redning erklæring. < br >
5
Start blokken med "begin ". Det kan have et vilkårligt antal "rednings " udsagn , og det ender med " ende" søgeord. Redningsaktionen erklæring har en type klausul samt: en type efterfulgt af => og en variabel navn. Eksklusive type vil gøre det muligt for rednings erklæring til fange alle kastet undtagelser.
6
Når du udfører rednings indregnes den værdi, der blev rejst tildelt " e ". Der kan være flere redningsaktioner udsagn med flere forskellige typer til at håndtere forskellige typer af fejl : beginaverage (98 , 92, 130) rescue => eputs "Jeg fangede nogen snyd ! " Sætter " Fejlmeddelelsen var denne: # { e } " ende < br >
Skriv Else og Sørg Statements
7
Opret en sikre erklæring , foruden til undsætning erklæring. Den sikre erklæring altid bliver udført , når blokken er færdig. Uanset hvordan blokken forlades , hvorvidt der var en hævet undtagelse , eller selv om det ikke lykkedes at redde undtagelsen selv, sikre erklæring er altid henrettet. Den ellers opgørelse udføres kun , hvis der ikke var nogen undtagelser
8
Her vil være sikker på karakterbogen bliver lukket, så sikrer du close_grade bog hedder : . Beginaverage (98 , 92, 130) rescue => eputs "Jeg fangede nogen snyd ! " sætter " fejlmeddelelsen var denne: # { e } "> ensureclose_gradebookend
9
Skriv en ellers erklæring. Hvis der ikke var nogen undtagelser , vil ellers erklæring lykønske den studerende til ikke snyd : elseputs " Godt arbejde, og du ikke engang snyde ! "