ruby异常处理
来源:互联网 发布:txt校对软件 编辑:程序博客网 时间:2024/05/29 17:16
一、常见ruby异常信息:
异常名
常见原因
怎样抛出
RuntimeError
raise抛出的默认异常
raise
NoMethodError
对象找不到对应的方法
a=Oject.new
a.jackmethod
NameError
解释器碰到一个不能解析为变量或方法名的标识符
a=jack
IOError
读关闭的流,写只读的流,或类似的操作
STDIN.puts("不能写入")
Errno::error
与文件IO相关的一类错误
File.open(-10)
TypeError
方法接受到它不能处理的参数
a=3+"abc"
ArgumentError
传递参数的数目出错
def o(x) end
二、格式
参照java的异常处理。
try{ -------------- begin}catch(){ ---------rescue }finally{ ---------ensure} ----------------end
可能会出现的异常信息包含在begin、end之间。
指定异常跟在rescue之后,当然可以缺省使用默认。rescue和else配对使用,else就是不是指定异常或者是没有异常。
ensure等同于java中的finally,不多做解释。
两个重要变量:$!:异常的描述信息、$@:异常出现的位置。
看个例子:
if __FILE__ == $0 a = 10 b = 20 c = 0 begin ad=a/b ac=a/c rescue puts "有异常 #{$!}, 位置:#{$@}" else puts "没有异常" ensure puts "进入类finally区" endend
执行结果:
有异常 divided by 0, 位置:exception.rb:15:in `/'exception.rb:15
进入类finally区
三、异常信息保存到变量
使用:rescue => e
打印:puts e.to_s
借用上面的例子,rescue替换成如下:
rescue => e puts "有异常 #{$!}, 位置:#{$@}" puts e.to_s+"....."
执行结果:
有异常 divided by 0, 位置:exception.rb:15:in `/'exception.rb:15
divided by 0.....
进入类finally区
- ruby的异常处理
- Ruby 异常处理
- ruby异常处理
- ruby异常处理
- ruby异常处理
- Ruby 异常处理
- ruby 异常处理:ensure
- ruby中的异常处理
- ruby 异常处理:ensure
- ruby编程中的异常处理
- ruby学习笔记(9)--异常处理
- Ruby学习笔记_异常处理rescue
- Ruby 异常
- ruby ROR中异常处理rescue与raise介绍
- Ruby学习笔记4(范围,迭代器,异常处理)
- ruby on rails 异常
- ruby中的异常
- Ruby中用begin/end …rescue…ensure … raise 来处理异常
- 利用Java web容器配置文件减少“硬编码”的几种方法
- 在那个还不懂爱的年纪:伤感日志
- 线程同步测试(1)
- Linux学习笔记(一)——文本编辑器vi
- 使用\appendix之后想把默认的附录编号A,B,C改变为1,2,3
- ruby异常处理
- 动态查找表--二叉排序树查找、删除
- div css布局中float right在IE6中换行
- hive存储格式sequencefile和rcfile的对比
- WebClient上传文件Jsp接受文件流数据
- VC++6.0编译环境介绍
- Http协议学习笔记
- 不堪回首的回忆,我总还是忍不住去想