Ruby在处理0.1+0.2是会出现精度问题:

  许多语言都有类似问题,详见网址:http://0.30000000000000004.com/

Ruby的异常处理

如果异常处理范围是整个方法体,可以省略begin和end,直接写rescure和ensure部分的程序,不过要写在最后,避免后面的方法体内容被跳过。

def foo
方法体
rescure => ex
异常处理
ensure
后处理
end

范例:


begin
input = File.open("liuyang.txt")
input.each do |line|
printf("%s,%d", line, line.size)
end
input.close
a =1
printf("\n%d\n", a)
rescue => ex
puts "**************"
puts ex.message #message : 异常信息
puts ex.backtrace #backtrace / $@ : 异常的位置信息
sleep(3)
retry #使用retry后,begin一下的处理会再重新做一遍
ensure
puts "no matter what happened , execute" #不管是否发生异常,这需要执行
end
 

Ruby的异常处理的更多相关文章

  1. Ruby学习中(条件判断, 循环, 异常处理)

    一. 条件判断 详情参看:https://www.runoob.com/ruby/ruby-decision.html 1.详情实例(看看就中了) #---------------# # LOL场均人 ...

  2. 动静结合?Ruby 和 Java 的基础语法比较(入门篇)

    前言 这篇文章示例代码比较多, Java 程序员可以看到一些 Ruby 相关语法和使用,Ruby 程序员可以看看 Java 的基本语法和使用方法,本文比较长,将近万字左右,预计需要十几分钟,如果有耐心 ...

  3. ruby 异常处理 begin rescue end

    begin 代码1 rescue 代码 end 如果执行 代码1 发生异常 则转至 代码2 若正常,则执行完跳出

  4. ruby 异常处理

    begin raise 'A test exception.' rescue Exception => e puts e.message puts e.backtrace.inspect end

  5. ruby异常处理

    begin # 这段代码抛出的异常将被下面的 rescue 子句捕获 rescue # 这个块将捕获所有类型的异常 retry # 这将把控制移到 begin 的开头 end

  6. ruby 基础知识(一)

    突然今天发现一大神的博客:http://www.cnblogs.com/jackluo/archive/2013/01/22/2871655.html    相信初学者会受益颇多 ruby  参考文档 ...

  7. Ruby之基础介绍(二)

    前言 上一篇我们简单介绍了下Ruby,这一节我们开始正式步入Ruby的世界,一探究竟. Ruby特点 (1)面向对象支持. (2)动态语言:我们可以修改已经定义过的类,也可以为现有类添加实例方法. ( ...

  8. 从0到1,教你实现基于Ruby的watir-webdriver自动化测试

    一.为什么选择Ruby []完全开源. []多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/.. []多线程:线程就是指在一个程序中处理若干控制 ...

  9. ruby基础语法

    首发:个人博客,更新&纠错&回复 学不同语言,常将它们的基础语法搞混,例如if后面有没有(),后面是then还是:还是{,结尾是end还是}. 这种事情毫无技术含量又毫无乐趣可言,但极 ...

随机推荐

  1. yii自定义验证

    自定义验证类 class BaseModel extends Model { public function rules() { return [ ['obj', ContentSecurityVal ...

  2. Visual Studio (VC) Win32 程序由于数据大,内存溢出怎么办?

    Visual Studio (VC) 内编写的Win32 程序由于数据大,内存溢出,即使转移到64位系统也不行.在国外网站上找到了答案. 原来,只需在project->property中的Lin ...

  3. 取出input内的空格

    onkeyup='this.value=this.value.replace(' ','')'

  4. 测试Random类nextInt()方法连续两次结果一样的概率

    public static void main(String[] args) { int count = 0; int a = 0; Random r = new Random(); while (t ...

  5. dedecms织梦副栏目名称和链接调用

    https://blog.csdn.net/qq_41805834/article/details/79552859

  6. Delphi 变量的作用域

  7. C与汇编混合编程

    C中调用汇编,要把汇编定义为全局的,加.global C内嵌汇编 __asm__( :汇编语句部分 :输出部分 :输入部分 :破坏描述部分 ); 用C内嵌汇编的方式:实现LED的点亮 //#defin ...

  8. tornada-模板

    tornado模板 1.配置模板路径 (project/config.py) # coding=utf-8 import os BASE_DIRS = os.path.dirname(__file__ ...

  9. Linux centos :root密码忘记怎么办?

    1 重启系统后出现GRUB界面在引导装载程序菜单上,用上下方向键选择你忘记密码的那个系统键入“e” 来进入编辑模式. 2 接下来你可以看到如下图所示的画面,然后你再用上下键选择最新的内核(这里是第二行 ...

  10. Reflector破译

    一:安装: 这个在包里,自己安装 二:注册 1. 断网2. 运行.NET Reflector,点击Help -> Activate 3. 运行注册机,复制注册机生成的序列号,粘贴到.NET Re ...