在三元条件下抛出新的异常

时间:2015-05-04 17:27:01

标签: java ternary-operator

我有这行代码:

List<Long> list = new ArrayList<>();

if (n < 0) throw new RuntimeException();

if (n == 0) return list;

我想使用Ternary condition

return (n < 0) ? (throw new RuntimeException()) : list;

但我有编译时异常。

2 个答案:

答案 0 :(得分:6)

您不能在三元句中抛出异常。两个选项都必须返回throw new Exception();不满足的值。

解决方案,使用if

答案 1 :(得分:3)

它不能编译,因为你想要做的事情在Java中是不合法的。 您无法返回throw new RuntimeException()。您的返回始终必须返回一个值。

你必须使用if而不是。