在Ruby中使用特定的代码库时,我经常发现自己不知道要解救什么异常.
例如,我经常使用HTTParty来处理我的rails/sinatra app会发出的任何HTTP请求.我挖掘了HTTParty的代码,发现了一个包含已定义的异常的文件.大!我会在提出请求时拯救他们.
为了测试它,我为请求输入了一个虚假的域名,但我没有预期的HTTParty :: ResponseError异常,而是得到了一个SocketError异常.
处理这个问题的最佳方法是什么?我知道HTTParty是Ruby实现的包装器,这可能是抛出SocketError异常的原因.但我怎么知道呢?
我可以通过拯救"异常"来解决这个问题,但这是非常糟糕的做法.我宁愿清楚我可能造成的异常并处理这些异常.
编辑:我应该澄清,真正促使我创建这个问题的是我不知道如何能够找出在调用特定函数时可能引发的异常...也就是说,无需查看每个函数调用在堆栈中.