我得到了一些代码,它不断从jRuby库中获取异常。代码只处理某些异常,但它错过了我一直得到的异常。
有没有办法可以在不深入图书馆代码的情况下弄清楚如何捕获特定的异常?
答案 0 :(得分:3)
在你的异常导致程序退出的时候,你应该显示引发的异常类型。
例如,我在下面的例子中粗略化了IRB报告的异常类型:
IRB(主):001:0> def do_it(a,b);结束; do_it(3,4,5)
ArgumentError :参数数量错误(给定3,预期为2)
来自(irb):1:在`do_it'中 来自(irb):1
来自/Users/meagar/.rbenv/versions/2.3.1/bin/irb:11:in`'
基于此,我知道我需要处理ArgumentError
。
如果失败,您可以捕获所有异常,在异常处理程序中使用调试器来检查捕获的异常并找出其类型,然后使用正确的异常类型替换catch-all。