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

问题描述 投票:0回答:2

我有这行代码:

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;

但是我有编译时异常。

java ternary-operator
2个回答
31
投票

不能在三元子句中抛出异常。两个选项都必须返回一个值,而

throw new Exception();
不满足该值。

解决方案,使用

if


6
投票

它无法编译,因为你想要做的事情在 Java 中是不合法的。 您无法退货

throw new RuntimeException()
。你的回报总是必须返回一个值。

你必须使用 if 而不是 that。

© www.soinside.com 2019 - 2024. All rights reserved.