Ocasionalmente, um método irá encontrar um erro, em que ponto ele vai falhar e dizer-lhe sobre isso através do mecanismo chamado de exceção. Em Ruby, quando exceções são levantadas através de um método que encontra um erro , você terá que resgatar seu programa e tratar o erro . Instruções
Lançar uma exceção
1
escrever algum código que irá lançar uma exceção , usando a instrução raise. Em Ruby, o comando raise irá parar a execução do método, em seguida, relaxar o programa.
2
Coloque a chamada para esse método em um comunicado de resgate correspondente. Caso contrário , o programa irá terminar e uma mensagem de erro será exibida no terminal. O exemplo a seguir mostra uma função de média , como a encontrada no software livro de notas .
3
Aqui, todas as pontuações do teste são calculados . Se o resultado for superior a 100% , não há escolha, mas para gerar uma exceção , porque alguém se enganou : def média ( num1 , num2 , num3 ) av = ( num1 + num2 + num3 ) /3.0if av > 100raise "Alguém enganou , média é # { av } " elsereturn avendend
tratar a exceção
4
Escreva a declaração de emergência , chamando o método da média incluído em um bloco com uma declaração de resgate.
5
Comece o bloco com " começar". Ele pode ter qualquer número de instruções de "resgate " , e termina com a palavra " fim" . A declaração de emergência tem uma cláusula tipo assim : um tipo seguido de => e um nome de variável . Excluindo-se o tipo permitirá que a declaração de resgate para capturar todas as exceções lançadas .
6
Ao executar a instrução de resgate , o valor que foi levantado é atribuído a "e". Pode haver várias instruções de resgate com vários tipos de lidar com diferentes tipos de erros : beginaverage (98 , 92, 130) de emergência = > eputs " Eu peguei alguém batota! " Coloca " A mensagem de erro foi o seguinte: # {e }" end
Escrever Else e garantir Demonstrações
7
Criar uma declaração de garantir , além da declaração de resgate. A declaração garantir sempre é executada quando o bloco está terminado. Independentemente de como o bloco saiu , se houve ou não uma exceção gerada , ou mesmo se ele não conseguiu salvar a própria exceção , a declaração garantir é sempre executado . A instrução else só é executado se não houvesse exceções
8
Aqui você quer certificar-se o livro de notas fica fechado , de modo a garantir livro close_grade é chamado: . Beginaverage (98 , 92, 130) resgate => eputs "Eu pego alguém batota" coloca " A mensagem de erro foi o seguinte: # {e} "> ensureclose_gradebookend
9
Escrever uma declaração de outra pessoa. Se não houvesse exceções , a declaração mais vai felicitar o aluno para não fazer batota : elseputs "Bom trabalho, e você nem sequer enganar ! "