gpt4 book ai didi

java - Java 中的异常类型

转载 作者:搜寻专家 更新时间:2023-11-01 04:04:08 24 4
gpt4 key购买 nike

我对 Java 中的异常类型感到困惑。在许多教程网站上,我看到java中有两种类型的异常

  1. 编译时异常
  2. 运行时异常

但是当我和一些 java 高手交谈时,根据他们的说法,没有像编译时异常这样的东西。他们说这是编译时错误而不是异常,而且我在 Java docs 中没有发现任何关于编译时异常的信息。 .但是当我运行以下程序时

File f = new File("C:/Documents and Settings/satyajeet/Desktop/satya.txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = br.readLine();
System.out.println(s);

如果没有提供 try catch,我得到以下输出。

D:\jdk1.6.0_19\bin>javac Testing.java
Testing.java:7: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
FileReader fr=new FileReader(f);
^
Testing.java:9: unreported exception java.io.IOException; must be caught or declared to be thrown
String s=br.readLine();
^
2 errors

那么我应该考虑这个错误还是编译时异常?

最佳答案

Throwable有3种类型在 Java 中。

  • 检查了Exception(Exception 和链下,保存RuntimeException)。这些由编译器检查,并且必须在抛出时被捕获。它们代表通常可以恢复的异常情况,例如当在文件系统上找不到引用的文件时(请参阅 FileNotFoundException)。
  • 未检查或运行时 Exception(RuntimeException 的子级)。这些可以扔掉而不会被捕获。它们通常表示编程错误,例如在 null 对象上调用方法(请参阅 NullPointerException)。
  • 错误。这些也是未经检查的。当发生非常错误的事情时,它们由 JVM 抛出,通常超出开发人员的直接控制范围(例如,内存不足,请参阅 OutOfMemoryError)。当您的代码无法编译时,Java 编译器会发出编译器错误,原因有多种,例如语法错误、调用不明确、未能捕获已检查的 Exception 等。

关于java - Java 中的异常类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32759150/

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