En Ruby, Quelles structures peuvent "sauver" de la déclaration de la imbriquée dans
En ruby pour attraper une erreur, on utilise le rescue
déclaration. en général, cette déclaration se produit entre begin
et end
. On peut aussi utiliser un rescue
instruction dans le cadre d'un bloc (do ... end
) ou une méthode (def ... end
). Ma question est ce que les autres structures (la boucle, tandis que, si, ...) si tout va sauver nid à l'intérieur?
do ... end
blocs ne peuvent pas être sauvés de sans explicitebegin ... end
.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez utiliser le sauvetage dans les deux cas:
Dans un
begin ... end
blocComme une déclaration de modificateur de
De la fonction, du module, et la classe des corps (merci Jörg) sont implicites
begin...end
blocs, de sorte que vous pouvez récupérer dans toute fonction, sans obligationbegin
/end
.La forme de bloc prend une option de la liste de paramètres, précisant les exceptions (et descendants) à
rescue
:S'il est appelé en ligne, comme une déclaration de modificateur, ou sans argument dans un
begin
/end
bloc de secours, l'attraperStandardError
et de ses descendants.Voici la 1.9 documentation sur
secours
.module
etclass
organes sont implicitesbegin
blocs, trop.do ... end
blocs etdef ... end
les définitions de méthode. EST-il autre chose qui est implicitebegin
?while
,case
, ouif
par exemple?