gpt4 book ai didi

Ruby Exception.to_s 与预期的字符串不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:47 25 4
gpt4 key购买 nike

我有一个救援 block ,它检查抛出的异常是否正确,如下所示:

rescue Exception
if $!.to_s() != "myException"
Err("Unexpected error :" + $!)
end
else
Err("No error")

我的 $!.to_s() 包含如下大字符串,当我 put 时,如下所示:

puts $!.to_s() 

if 语句之前的上述 puts 的输出是:

myException \n
th sdfsj dsjhf sdfj \n
asdj jkds fdf j

所以在 if 语句中,我想将 $!.to_s() 输出的第一行与双引号中的字符串进行比较。

有什么解决办法吗?

最佳答案

这让我的眼睛受伤了。请使用 ruby​​ 进行面向对象编程。

class MyException < StandardError; end

将定义一个新的异常,你可以通过它来拯救

begin
do_something_that_raises_expected_exception
rescue MyException
do_something_else
end

因此您不需要任何字符串比较。

如果您想继续前进,请使用 string.match exception_name,但我建议您不要这样做。

关于救援的另一种说法:如果可能,不要使用rescue Exception,只需使用rescue,因为Exception 捕获类似 的东西SyntaxError 也是(这可能不是故意的)。与 python 相比,ruby 中的流控制不赞成异常。

关于Ruby Exception.to_s 与预期的字符串不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8179802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com