我有这行代码:
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;
但我有编译时异常。
答案 0 :(得分:6)
您不能在三元句中抛出异常。两个选项都必须返回throw new Exception();
不满足的值。
解决方案,使用if
。
答案 1 :(得分:3)
它不能编译,因为你想要做的事情在Java中是不合法的。
您无法返回throw new RuntimeException()
。您的返回始终必须返回一个值。
你必须使用if而不是。