Ruby 1.9概要(5) 异常

1、异常的相等性 ,如果两个异常的class、message和backtrace一样,那么认为这两个异常是相等的,可以通过==判断。

def  method
    
raise   ' foobar '
end

errors 
=  []
2 .times do
    Thread.new do
      begin
        method
      rescue 
=>  e
        errors 
<<  e
      end
    end.join
end
puts errors[
- 2 ==  errors[ - 1 ]     # => true (1.9)   false(1.8)


2、SystemStackError现在继承Exception类,而非原来的StandardError :
1.8 

SystemStackError  <  StandardError   #  => true

1.9

SystemStackError  <  StandardError  #  => nil
   SystemStackError  <  Exception       # => true


3、移除了Exception#to_str方法

begin
   
raise   " foo "
rescue
   $!.to_str
end

# => undefind method "to_str" for #<RuntimeError:foo>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值