gpt4 book ai didi

java - Intellij 一直说 plain 'throw' 语句中存在错误

转载 作者:行者123 更新时间:2023-11-29 08:24:07 25 4
gpt4 key购买 nike

这是一个 super 简单的java代码

public class Main {


public static void throwExample() {
throw new Exception(); // IntelliJ says that something's wrong here.
}

public static void main(String[] args) throws FileNotFoundException {

FileOutputStream fos = new FileOutputStream("aa.txt");
ByteArrayOutputStream baos = new ByteArrayOutputStream();

for(int i = 0; i < 10 ; i++) {
baos.write((byte) i);
}

System.out.println(Arrays.toString(baos.toByteArray()));
}
}

在我评论的第三行,IntelliJ 说这里有问题。所以我随机更改了代码,当我执行以下操作时,

public static void throwExample() // throws Exception

一切正常。

但我看到很多例子使用'throw'关键字没有'throws'在一起,比如

class Exception2{
static int sum(int num1, int num2){
if (num1 == 0)
throw new ArithmeticException("First parameter is not valid");
else
System.out.println("Both parameters are correct!!");
return num1+num2;
}
public static void main(String args[]){
int res=sum(0,12);
System.out.println(res);
System.out.println("Continue Next statements");
}
}

我的代码会出现什么问题?

最佳答案

But I saw lots of examples using 'throw' keyword without 'throws' together

在java中,有两大类异常是

  1. 检查异常
  2. 未经检查的异常

如果您抛出一个已检查异常,您需要通过使用 try catch block 围绕可能抛出已检查异常的代码片段或添加 throws 来捕获它方法签名中的关键字。

另一方面,如果您的代码抛出未经检查的异常,则没有必要捕获它。因此,Java 编译器不会提示您没有在第二个代码示例的方法签名中添加 throws 关键字。

关于java - Intellij 一直说 plain 'throw' 语句中存在错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54851075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com