Ruby 异常处理与代码块详解
1. 异常类型示例
在 Ruby 中,不同的操作可能会引发不同类型的异常,例如:
- calc( 20, 0 ) 会引发 ZeroDivisionError ,因为除数不能为零。
- calc( 20, "100" ) 会引发 TypeError ,因为类型不匹配。
- calc( "100", 100 ) 会引发 NoMethodError ,因为对象没有相应的方法。
2. ensure 关键字:无论是否出错都执行代码
在处理不可预测的输入/输出时,如操作磁盘上的文件和目录,可能会遇到各种问题,如位置不存在或数据源有问题。这时,无论是否遇到问题,都可能需要执行一些最后的“清理”程序,如登录到特定工作目录或关闭先前打开的文件。可以使用 ensure 关键字来实现这一点, ensure 块中的代码无论之前是否出现异常都会执行。
以下是两个示例:
- 示例一:恢复工作目录
startdir = Dir.getwd
begin
Dir.chdir( "X:\\" )
puts( `dir` )
rescue Exception => e
puts e.class
puts e
ensure
Dir.chdir( sta
Ruby异常处理与代码块解析
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



