编写一个简单、干净的错误消息,没有回溯,并在失败时退出 [已关闭]

Write a simple, clean error message without a backtrace and exit on failure [closed]

提问人:Timur Shtatland 提问时间:5/25/2023 最后编辑:Timur Shtatland 更新时间:5/26/2023 访问量:59

问:


想改进这个问题吗?更新问题,以便可以通过编辑这篇文章来用事实和引文来回答。

6个月前关闭。

我想在失败时为用户写一条干净、简单的错误消息,没有(详细的)回溯,然后以失败状态退出。我目前正在使用在我调用的代码的各个部分引发异常。我正在使用块,它包装了整个调用方代码,如以下简化示例所示:STDOUTSTDERRraisebegin ... rescueabort

#!/usr/bin/env ruby

def bar
  is_input_valid = false # in the actual code, this is more complex and can be true/false
  if not is_input_valid
    raise "Input is not valid"
  end
  # ... more code ...
  is_ok_foo = false # in the actual code, this is more complex and can be true/false
  if not is_ok_foo
    raise "Foo is not ok"
  end
end

begin
  bar
rescue StandardError => e
  abort e.message
end

现实生活中的示例具有更详细的回溯,以及多个语句,用于处理带有自定义消息的不同故障模式。raise

这是处理异常并仅打印错误消息并以失败状态退出的首选(例如,最可维护的)方法吗?

例如,另一种选择是在代码中使用而不是,并且不使用块。abortraisebegin ... rescue

另请参阅:

Ruby 异常 错误处理 回溯救援

评论

0赞 Timur Shtatland 5/25/2023
将这个问题移至 Code Review Stack Exchange:codereview.stackexchange.com/questions/285164/...

答: 暂无答案