2012-12-18 100 views
3

我正在将scala'try/catch'测试代码转换为使用'拦截'拦截与try/catch

有没有我不应该使用'拦截'的任何场景?使用'拦截'而不是'try/catch'的唯一好处是简洁吗?

回答

5

之一实用的优点,是intercept也返回Exception,所以你可以检查它像这样:

intercept[IndexOutOfBoundsException](s charAt -1).getMessage should be === "..." 
8

我认为主要的区别是intercept有一个语义,你得到的异常是预期的,而不是由程序错误引起的。

所以我通常只使用intercept当测试用例对它进行测试时异常会在用户输入错误或类似的场景时正确抛出。