当前位置: 首页 > 知识库问答 >
问题:

在三元条件下抛出新异常 [重复]

韦泳
2023-03-14

我有以下代码行:

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

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

if (n == 0) return list;

我想使用三元条件

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

但我有编译时异常。

共有2个答案

查修谨
2023-03-14

它不能编译,因为你想做的在Java里是不合法的。不能返回< code > throw new runtime exception()。你的返回总是要返回一个值。

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

符风畔
2023-03-14

不能在三元子句中抛出异常。两个选项都必须返回一个值,该值<code>抛出new Exception()不满足。

解决方案,使用< code>if。

 类似资料:
  • 问题内容: 我有一个关于Java中重新引发异常的非常简单的问题。 这是代码片段: 为什么我们需要在第一个版本中重新抛出,而第二个版本看起来更优雅?可能有什么好处,并且优先选择哪个版本? 问题答案: 你是对的。第二版更好。而且,第一个版本没有任何意义。除了异常的堆栈跟踪为“错误”之外,它的功能相同。 有“重新抛出”异常的原因如下: 如果您之前有事要做。 如果捕获一种类型的异常并抛出另一种类型的异常:

  • 假设我想在收到特定异常时恢复某个值,否则返回失败的未来。我希望是这样的: 如果函数会抛出检查过的异常,我想在链式方法中处理它。我尝试过和,但都无法编译。是否为这种情况提供了任何解决方案?我知道接口是方法的参数,它不会抛出任何异常——在这种情况下,我只想返回已经失败的未来。我想找到使用Java8的解决方案。

  • 你怎么捕获一个异常,之后在另外一个线程上重新抛出?使用在标准文档18.8.5中描述的异常传递中的方法吧,那将显示标准库的魔力。 exception_ptr current_exception(); 返回一个exception_ptr 变量,它将指向现在正在处理的异常(15.3)或者现在正在处理的异常的副本(拷贝),或者有的时候在当前没有遇到异常的时候,返回值为一个空的exception_ptr变量

  • 我有一个程序,可以从远程服务器下载一堆文档,然后把它们打包成一个文件夹。使用ZipOutStream压缩文件。 问题是,当我下载文件时,可能有多个文件具有相同的文件名。因此,当我试图将具有相同文件名的条目放在已经在ZipOutputStream中时,它会抛出一个异常“重复条目”。 有没有一种方法,我可以检查重复的条目,在将zip条目添加到ZipOutputStream之前?所以我可以重命名重复的文

  • @apiResponse似乎也没有更正响应类型。 如本问题所述,如何在swagger Codegen中处理多个响应/返回类型(204为空,400为非空等)? 我可以这样扔 但是有没有更好的方法来做到这一点呢?我只想将.getResponseBody()作为对象而不是字符串返回。 非常感谢。

  • 这是我连接HTTP的代码。 这就是android。操作系统。NetworkOnMainThreadException 请帮忙。