Qu'est-ce qu'un EOFError dans les E / S de fichiers Ruby?
La la documentation officielle ne spécifie pas. Je comprends EOFError signifie "Fin de l'erreur de fichier", mais qu'est-ce que cela veut dire? Si un lecteur de fichier atteint la fin d'un fichier, qui ne sonne pas comme une erreur pour moi.
source d'informationauteur Tony
Vous devez vous connecter pour publier un commentaire.
EOFError est très utile dans tous les de IO, la classe qui est la base de toutes les entrées/sorties en langage ruby. Maintenant, rappelez-vous aussi de base de Unix concepts: tout est fichier. Cela inclut les sockets. Donc, si vous avez quelques socket ouvert et sont la lecture, un état exceptionnel, peut-être à la rencontre d'une fin de fichier.
Tous les exemples montrent trivial utilise de EOFError (lors de la lecture d'un fichier texte), qui ne sont pas vraiment utiles. Cependant, creuser par le biais de net/http ou d'autres classes qui utilisent des sockets fortement, et vous verrez cette exception utilisé.
Édité pour ajouter cet exemple de net/ftp
EOFError (Fin de Fichier d'erreur), est générée lorsque vous essayez de faire effectuer une opération sur un fichier objet qui a déjà référence à la fin du fichier. Dans cet exemple, nous essayons de
readline
lorsque la ligne n'existe pas.Par exemple:
La même chose peut être atteint sans la EOFError: