Ruby 异常处理全解析
1. 异常抛出与参数检查
在编程中,异常处理是确保程序健壮性的重要部分。以阶乘函数为例,当传入错误参数时,我们可以通过特定方式抛出异常并定位问题代码。
if n < 1
raise ArgumentError, "Expected argument >= 1. Got #{n}", caller
end
上述代码检查参数 n 是否小于 1,如果是,则抛出 ArgumentError 异常,并提供自定义的堆栈跟踪信息。不过,该阶乘方法仅检查了参数范围,未检查参数类型。为了增加更严格的错误检查,可在方法开头添加如下代码:
raise TypeError, "Integer argument expected" if not n.is_a? Integer
若传入字符串参数,Ruby 使用 < 运算符比较参数与整数 1 时,会因操作无意义而抛出 TypeError 异常;若参数所属类未定义 < 运算符,则会抛出 NoMethodError 异常。这表明,即使代码中未显式调用 raise ,异常仍可能发生,因此了解异常处理至关重要。
超级会员免费看
订阅专栏 解锁全文
1126

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



