ruby 中的异常处理
http://www.cnblogs.com/watir/archive/2009/03/28/1423951.html
begin #开始
raise..#抛出异常
rescue[ExceptionType=StandardException]#捕获指定类型的异常缺省值是StandardException
$!#表示异常信息
$@#表示异常出现的代码位置
else#其余异常
..
ensure#不管有没有异常,进入该代码块
end #结束可以结合$!错误原因,和$@错误位置做一个错误捕获并提示的小程序,比如:
begin
file=open(name)
i=0
file.read.each_line{|line|puts"#{i+=1}.#{line}"}
rescue
puts"error:#{$!}info"
puts"theerrorat:#{$@}"
ensure
file.close
end上面的小程序读入一个指定的文件并加入行号进行输出,当产生错误时会输出错误信息以及提示,可以故意输入一个不存在的文件名。
其实
begin相当于java 的try
rescue相当于java的catch
ensure相当于java 的 finaly
raise相当于java 的 throw
异常类的结构为:
Object
- Exception
- (Interrupt) (ruby 1.7 特性 version 1.6以前的位置)
- NoMemoryError
- scrīptError
- LoadError
- (NameError) (ruby 1.7 特性 version 1.6以前的位置)
- NotImplementedError
- SyntaxError
- SignalException
- Interrupt (ruby 1.7 特性)
- StandardError
- ArgumentError
- IndexError
- KeyError (ruby 1.9 特性)
- IOError
- LocalJumpError
- NameError (ruby 1.7 特性)
- NoMethodError (ruby 1.7 特性)
- RangeError
- RegexpError
- RuntimeError
- SecurityError
- SystemCallError
- SystemStackError
- ThreadError
- TypeError
- ZeroDivisionError
- SystemExit
- fatal
相关推荐
kevinweijc 2020-08-18
kikaylee 2020-08-18
寻常白昼 2020-08-15
shunelly 2020-08-09
liangzhouqu 2020-07-28
JessePinkmen 2020-07-26
xiaoxiaoniaoer 2020-07-21
Lexan 2020-06-22
heimicms 2020-06-14
tianyafengxin 2020-06-08
lynjay 2020-06-06
cenylon 2020-06-04
lqxqust 2020-06-03
宿舍 2020-05-29
Wonder的学习 2020-05-11
明天你好 2020-05-09
阿艾辣悟叩德 2020-05-06
致终将努力的我们 2020-05-05