Project1

标题: begin…rescue…end 的具体用法 [打印本页]

作者: 八云紫    时间: 2008-6-7 19:20
标题: begin…rescue…end 的具体用法
begin…rescue…end 只看到在 Main 中使用过,rescue 是捕捉异常, 当具体在用法却不知道。

所以请教一下begin…rescue…end 的具体用法{/hx} [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 禾西    时间: 2008-6-7 19:48

if ... else ... end
作者: 八云紫    时间: 2008-6-7 19:48
以下引用禾西于2008-6-7 11:48:00的发言:


if ... else ... end


茶~~不会就这么简单?

难道说和 try … case 差不多?
作者: 禾西    时间: 2008-6-7 19:53
就是這麽簡單==
begin
  .... #=>出錯
rescue
  ...  #<=運行
end
不會報告錯誤
基本就等於
if 無錯
  ....
else
  ....
end
還可以指定錯誤類型
begin
  ...
rescue 指定錯類型
  ...
end
就等於
if 無錯
  ...
elsif 錯誤 == 指定錯誤
  ...
end
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 八云紫    时间: 2008-6-7 19:55
嘎嘎,还有没有其他很邪恶的用法?{/tp}
作者: Infrared    时间: 2008-6-7 19:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: 禾西    时间: 2008-6-7 20:01
有。
可以用來取代 if denfined? (method) 來進行腳本整合
另外還可以用來製作分歧(所以我就說跟 if ... else ... end 一樣)
可以用來判斷是否有某個文件存在。根據是否有某個文件而判斷行爲
(可以用來製作×××包騙錢)

可以去查看Isalia小雪的某個帖子,提問區置頂帖有連接
(一時又發現置頂帖被漠視了....墻角)


對了,還有
用在Dir當中。避免到達文件尾忘記 close
作者: 八云紫    时间: 2008-6-7 20:01
汗~~~~ 邪恶归邪恶 , 没有什么实际意义的说。

谢谢 禾西 3535 了。{/hx}
作者: 禾西    时间: 2008-6-7 20:08
其實rescue一般來說都是配合raise一齊debug用的
begin
  ...
resuce ...
  raise ...
end
作者: 八云紫    时间: 2008-6-7 20:10
rescue 不带参数的话,是不是可以捕捉到所有异常?
作者: danny8376    时间: 2008-6-8 01:30
以下引用八云紫于2008-6-7 12:10:53的发言:

rescue 不带参数的话,是不是可以捕捉到所有异常?


没错











题外话

6R没提供打繁出简的功能吗

每次都要开翻译软件
作者: 八云紫    时间: 2008-6-8 01:34
再问一个问题,Ruby 不支持多态吧,那么如果要重载函数的时候,应该怎么写呢??
作者: 雪流星    时间: 2008-6-8 03:45
以下引用八云紫于2008-6-7 17:34:45的发言:
再问一个问题,Ruby 不支持多态吧,那么如果要重载函数的时候,应该怎么写呢??

可以换一个说法:
Ruby不需要多态
因为Ruby本身的定位就是:所有的东西都是对象/物件
XXX.method  自然就是调用所指向的对象的函数
作者: 八云紫    时间: 2008-6-8 03:50
恩恩,明白了。谢谢大家。{/hx}
作者: link006007    时间: 2008-6-8 08:28
try{
}catch(...){
}finally{
}

作者: 禾西    时间: 2008-6-8 10:42
Ruby 的多態表現在實例生成之上(好像某本書是這樣寫的...)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1