在三元条件下引发新异常

2022-09-02 12:31:59

我有这行代码:

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;

但是我有编译时异常。


答案 1

不能在三元子句中引发异常。这两个选项都必须返回一个值,该值不满足。throw new Exception();

解决方案,使用 .if


答案 2

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

你必须使用 if 而不是那个。