如果我的某个方法getFactorial(int n)
因负输入而失败,那么throw
是ArithmeticException
还是IllegalArgumentException
?负数绝对是非法的论点;他们在算术上也是一种废话。对于程序员来说,为什么该方法无法处理输入,这或者它们只是一个指示是否重要?
答案 0 :(得分:1)
ArithmeticException
适用于
发生异常算术条件时抛出。
IllegalArgumentException
适用于
抛出表示某个方法已被传递为非法或 不恰当的论点。
在你的情况下,这是一个提供给方法的错误参数,因此IllegalArgumentException
似乎更精细。
我认为方法中出现的ArithmeticException
对于会产生算术错误的计算更有意义,并且只能通过检查方法条目中的参数来猜测问题。
答案 1 :(得分:0)
在这种情况下应该使用IllegalArgumentException
,因为您不希望用户将负参数(参数)传递给方法。
如果计算出的值没有意义,则应使用ArithmeticException
。
例如,ArithmeticException
状态为Javadoc:
发生异常算术条件时抛出。例如,一个整数"除以零"抛出这个类的一个实例。