ruby - 救援后的空单引号是什么?
问题描述
while t = Integer(gets.chomp) rescue ''
if t.is_a? Integer
break
else
print "Please enter a whole number "
end
end
我只是想弄清楚为什么在救援之后我需要那些空单引号才能使这个循环工作。
解决方案
这称为内联rescue
。如果t = Integer(gets.chomp)
引发任何继承自StandardError
它的异常,将被救出并返回一个空字符串。你可以这样想:
begin
do_something
rescue
''
end
这种方法的问题是您无法指定要从中救援的异常类,因此您可能会不小心掩盖您没有预料到的错误,例如拼写错误的方法NoMethodError
时引发的错误:chomp
Integer(gets.chmp) rescue ''
#=> ""
推荐阅读
- amazon-ec2 - Ubuntu 16.04 中每个命令行的分段错误
- docker - 如何获取 docker 镜像的所有可用环境变量?
- taleo - Taleo GetAll api的结果限制是多少
- java - 在多模块 Maven 项目中使用 @project.version@ 和 Liquibase
- jenkins - 卷“default-token-4gcr4”的 MountVolume.SetUp 失败:对象“jenkins”/“default-token-4gcr4”未注册
- angular - 分层树视图展开折叠使用 Ul li in angular 8
- excel - 如何使用vba在excel中仅复制和粘贴过滤的单元格
- excel - Sumproduct 检查文本是否是命名范围的名称并返回这些数字
- ruby-on-rails - Ruby Rails 从 CSV 中删除评论
- python-3.x - 如何构建用于创建模型的分类器?