Ibland kommer en metod att stöta på ett fel , då det kommer att misslyckas och berätta om det via en mekanism som kallas ett undantag . I Ruby , när undantagen höjs med en metod som stöter på ett fel , kommer du rädda ditt program och hantera felet . Instruktioner
generera ett undantag
1
Skriv lite kod som kommer att kasta ett undantag , med höjningen uttalande . I Ruby , kommer höjningen uttalande stoppar exekveringen av metoden , sedan varva ner programmet .
2
Bifoga samtalet till denna metod i en matchande räddning uttalande . Annars kommer programmet att avslutas och ett felmeddelande kommer att visas på terminalen . Följande exempel visar ett genomsnitt funktion , såsom den som finns i årskurs bok programvara .
3
Här är alla provresultat genomsnitt . Om resultatet är mer än 100 % , det finns inget annat val än att höja ett undantag för att någon har fuskat : def genomsnittet ( num1 , num2 , num3 ) AV = ( num1 + num2 + num3 ) /3.0if AV > 100raise " Någon lurade , genomsnitt # { aV } " elsereturn avendend
Hantera Exception
4
Skriv undsättning uttalande kallar genomsnittsmetoden innesluten i ett block med en räddningsaktion uttalande .
5
Starta blocket med " börja . " Det kan ha flera "rescue" uttalanden , och det slutar med " slut " nyckelordet . Undsättning uttalande har en typ klausul som väl: en typ följt av = > och ett variabelnamn . Exklusive typen låter undsättning uttalande att fånga alla kastas undantag .
6
När köra Rescue uttalande , är det värde som höjdes tilldelats " e ". Det kan finnas flera räddnings uttalanden med flera typer för att hantera olika typer av fel : beginaverage ( 98 , 92 , 130 ) räddning = > eputs " Jag fick någon fuskar ! " Sätter " Felmeddelandet var : # { e } " end
Skriv Else och Säkerställ Uttalanden
7
Skapa ett säkerställa uttalande , förutom till undsättning uttalande . Den säkerställa uttalande alltid blir exekveras när blocket är klar. Oavsett hur blocket lämnat , om det var ett undantag upp , eller ens om det inte gick att rädda undantaget i sig , uttalande säkerställa utförs alltid . Den else utförs endast om det inte fanns några undantag Här
8
du vill vara säker på betyget boken blir stängd , så du se till close_grade Boken heter : . Beginaverage ( 98 , 92 , 130 ) räddning = > eputs " jag fick någon fuskar ! " sätter " felmeddelandet var : # { e } " > ensureclose_gradebookend
9
Skriv ett annat uttalande . Om det inte fanns några undantag , kommer annars uttalande gratulera studenten för att inte fuska : elseputs " Bra jobb , och du har inte ens fuska ! " Addera