Noen ganger vil en metode får en feil, noe som medførte at det vil mislykkes og fortelle deg om det via en mekanisme som kalles et unntak. I Ruby , når unntak er oppdratt av en metode som oppstår en feil , har du redde ditt program og håndtere feilen. Instruksjoner
kaste et unntak
en
Skriv noen kode som vil kaste et unntak , med raise uttalelse. I Ruby , vil raise uttalelse stoppe henrettelsen av metoden, deretter slappe av programmet .
2
Legg ved kallet til denne metoden i en rescue- uttalelse. Ellers vil programmet stoppe og en feilmelding vises på terminalen . Følgende eksempel viser et gjennomsnitt funksjon, slik som finnes i karakterboken programvare.
3
Her er alle testresultater gjennomsnitt . Hvis resultatet er mer enn 100 % , er det ikke annet valg enn å heve et unntak fordi noen har jukset : def gjennomsnitt ( num1 , num2 , num3 ) v = ( num1 + num2 + num3 ) /3.0if AV > 100raise "Noen jukset , gjennomsnittet er # { v } " elsereturn avendend
Håndter Unntak
4
Skriv unnsetning uttalelsen , og kalte den gjennomsnittlige metoden vedlagt i en blokk med en redning uttalelse.
5
Start blokk med " begynne ". Det kan ha en rekke "redde " uttalelser , og det ender med "slutten " søkeord . Redningen setningen har en type klausul i tillegg : en type etterfulgt av = > og et variabelnavn. Eksklusiv type vil tillate unnsetning uttalelse til fange alle unntak kastet .
6
Når du starter redning setningen, blir verdien som ble reist tildeles " e ". Det kan være flere rescue uttalelser med flere typer å håndtere ulike typer feil : beginaverage ( 98 , 92 , 130 ) redning = > eputs " Jeg fanget noen juks ! " Setter " Feilmeldingen var dette: # { e } " end
Skriv Else og sikre Uttalelser
7
Lag en sikre uttalelse, i tillegg til unnsetning uttalelse. Den sikre uttalelse alltid blir utført når blokken er ferdig. Uansett hvordan blokken gått ut , om det var et unntak hevet, eller selv om den ikke klarte å redde unntak selv, sikre setningen utføres alltid . Den andre setningen utføres bare hvis det var ingen unntak
8
Her vil være sikker på karakterboken blir lukket, slik at du sikrer close_grade Boken heter : . Beginaverage ( 98 , 92 , 130 ) redning = > eputs " jeg fanget noen juks ! " setter " feilmeldingen var dette: # { e } "> ensureclose_gradebookend
9
Skriv en else statement . Hvis det var ingen unntak, vil den andre uttalelsen gratulere student for ikke juks : elseputs " Good job , og du ikke engang jukse ! "