首页 > 试题广场 > 下列哪种异常是检查型异常,需要在编写程序时声明?
[单选题]
下列哪种异常是检查型异常,需要在编写程序时声明?
  • NullPointerException
  • ClassCastException
  • FileNotFoundException
  • IndexOutOfBoundsException
推荐
java中的异常通常分为编译时异常和运行异常。编译时异常需要我们手动的进行捕捉处理,也就是我们用try....catch块进行捕捉处理。对于运行时异常只有在编译器在编译运行时才会出现,这些不需要我们手动进行处理。对于A、 B、 D来说都是运行时异常,因此答案为C
编辑于 2015-06-19 16:32:30 回复(5)


1. 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.
2. 绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...
3. 而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。
发表于 2015-10-10 17:06:33 回复(13)

Java异常类层次结构图:


通常,Java的异常(包括Exception和Error)分为 可查的异常(checked exceptions)和不可查的异常(unchecked exceptions)
       可查异常(编译器要求必须处置的异常): 正确的程序在运行中,很容易出现的、情理可容的异常状况 可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常 状况,就必须采取某种方式进行处理。

      除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。

      不可查异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。


发表于 2015-10-23 20:04:17 回复(6)
A:空指针异常
B:类转换异常
C:文件找不到异常
D :索引超出异常
A\B\D是运行异常,C检查型异常
发表于 2017-04-27 17:57:40 回复(0)

编辑于 2019-10-21 16:54:49 回复(0)
Java异常
  • 检查型异常(编译时异常 checked exceptions)
    • 需要在编写程序时声明
    • 需要我们手动的进行捕捉处理,也就是我们用try....catch块进行捕捉处理。或者在方法签名里通过throws子句声明
    • Throwable、Exception、IOException、ClassNotFoundException、CloneNotSupportedException、EOFException、FileNotFoundException、MalformedURLException、UnknownHostException
  • 运行异常(runtime exceptions)
    • 只有在编译器在编译运行时才会出现,这些不需要我们手动进行处理
    • 需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...
    • RuntimeException、ArithmeticException、ClassCastException、IllegalArgumentException、IllegalStateException、IndexOutOfBoundsException、NoSuchElementException、NullPointerException
  • Error
    • 属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。
发表于 2018-09-15 18:40:48 回复(0)
1、Java 基本上除了 File、SQL 相关的异常外,都是运行时异常

2、运行时异常不必显式声明
发表于 2018-04-20 16:05:31 回复(0)
Java异常类层次结构图:  通常,Java的异常(包括Exception和Error)分为 可查的异常(checked exceptions)和不可查的异常(unchecked exceptions) 。         可查异常(编译器要求必须处置的异常): 正确的程序在运行中,很容易出现的、情理可容的异常状况 。 可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常 状况,就必须采取某种方式进行处理。       除了RuntimeException及其子类以外,其他的Exception类及其子类都属于可查异常。这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。       不可查异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。
发表于 2016-11-27 14:19:02 回复(0)
答案是C
A、B、D都是运行时异常,C是编译时异常,需要用try-catch块进行处理
发表于 2015-07-11 20:09:38 回复(0)
1、正确的选择是C.
2、撇去错误,JAVA中的异常分为编译异常和运行异常,前者需要在编码时显性用try catch捕捉,后者不强制要求。
3、A、B、D都是运行时异常,C是在用流对象(如file)读取文件时要求显性捕捉的。
发表于 2015-04-17 16:12:47 回复(0)
C,
发表于 2015-04-10 21:00:44 回复(0)
try catch异常在编写程序时就提示出来
发表于 2019-08-07 13:40:07 回复(0)
C:IO操作必须抛出异常
发表于 2019-06-04 17:42:44 回复(0)
ABD都是我编译运行时出现过的异常。。。B是真的要写出来的检查型异常
发表于 2019-04-15 20:31:00 回复(0)
检查型异常,编译的时候就会给你给出
发表于 2018-10-31 21:59:51 回复(0)

ABD都是runtime exception,根据排除法选C

发表于 2018-10-05 18:31:31 回复(0)
JAVA异常分为运行时异常和编译时异常,编译时异常,需要我们手动进行捕获,也就是try{}catch(exception e){}finally{}
然后java异常结构体系

发表于 2018-09-06 11:11:23 回复(0)
总共分为三类error-checked,-unchecked(run)
发表于 2018-08-14 18:19:24 回复(0)
try{
    Class.forName("com.mysql.jdbc.Driver");
}catch (ClassNotFoundException e) {
    System.out.println("找不到驱动类!");
}

写JDBC在加载数据库驱动时,必须得手动捕获处理异常,这种需在编译前手动处理的称之为检查型异常。(可以理解为编译器编译的时候需要排查的,如果程序员没有手动处理会报错)

发表于 2018-07-28 09:54:07 回复(0)
第二个异常是指类型转换异常
发表于 2018-07-04 10:50:14 回复(0)
知识点1: 检查型异常和非检查型异常 也称为编译型异常和运行时异常
知识点2:运行时异常都有哪些
发表于 2018-01-21 13:26:53 回复(0)