我经常发现自己不知道在Ruby中使用特定的代码库时会发生什么异常。如何知道要解救的例外情况?
例如,我经常使用HTTParty来处理我的rails/sinatra应用程序会产生的任何HTTP请求。我挖掘了HTTParty的代码,发现一个包含使用定义的异常的文件。大!我会在提出请求时将他们救出。
为了测试它,我为请求放入了一个虚假的域名,但不是我期望的HTTParty :: ResponseError异常,而是得到一个SocketError异常。
处理这个问题的最佳方法是什么?我知道HTTParty是Ruby实现的一个包装,这可能是抛出SocketError异常的原因。但是,我通常会怎么知道?
我可以通过拯救“异常”来解决这个问题,但这是非常糟糕的做法。我宁愿意识到我可能造成的例外情况,并处理这些例外情况。
编辑:我应该澄清,真正促使我创建这个问题的是,我不知道如何找出调用特定函数时可能出现的异常......也就是说,查看堆栈中的每个函数调用。
*为什么*你想拯救异常?如果一个程序抛出它们,你打算做什么来使持续处理有用? – 2012-07-25 01:51:38