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