首页 > 试题广场 >

下面有关 JAVA 异常类的描述,说法正确的有()

[不定项选择题]
下面有关 JAVA 异常类的描述,说法正确的有()
  • 异常的继承结构:基类为 Throwable,Error 和 Exception 。实现 Throwable, RuntimeException 和 IOException 等继承 Exception
  • 非 RuntimeException 一般是外部错误(不考虑Error的情况下),其可以在当前类被 try{}catch 语句块所捕获
  • Error 类体系描述了 Java 运行系统中的内部错误以及资源耗尽的情形,Error 不需要捕捉
  • RuntimeException 体系包括错误的类型转换、数组越界访问和试图访问空指针等等,必须 被 try{}catch 语句块所捕获
ABC

都是Throwable的子类:
1.Exception(异常)
:是程序本身可以处理的异常。
2.Error(错误): 是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需要程序处理。

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

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

编辑于 2016-06-02 22:02:03 回复(48)
原来B错事因为还可以使用throw抛出
编辑于 2018-03-08 20:43:12 回复(0)
B:非RuntimeException可以往上抛,等待调用者解决,不一定非要被try{}catch语句捕获
编辑于 2017-11-14 22:28:59 回复(0)
B的那个选项到底是正确还是错误   求解
发表于 2017-09-25 12:20:58 回复(0)
AC吧 对于B,也可以抛出吧
发表于 2017-09-10 00:02:09 回复(0)
D选项 错误的原因:说一个简单的例子:在我们用myeclipse或eclipse开发时
非运行时异常 总是在我们写的时候就会出错 提醒我们try catch  或throw  
但是运行时异常检查不出来,只有运行时才会出错,所以也不需try catch
欢迎大家踊跃探讨
发表于 2016-09-05 16:48:35 回复(7)
B为什么!可以throws啊!为啥非要捕获
发表于 2017-04-08 23:19:27 回复(22)

1)系统错误(system error)是由Java虚拟机抛出的,用Error类表示。Error类描述的是内部系统错误。这样的错误很少发生。如果发生,除了通知用户以及尽量稳妥地终止程序外,几乎什么都不能做。

2)异常(exception)是用Exception类表示的,它描述的是由程序和外部环境所引起的错误,这些错误能被程序捕获和处理。

3)运行时异常(runtime exception)是用RuntimeException类表示的,它描述的是程序设计错误。运行时异常通常是由Java虚拟机抛出的。
发表于 2016-07-11 21:56:57 回复(0)
Error和RuntimeException及其子类都是未检查的异常(unchecked exceptions),而其他所有的Exception类都是需检查的异常(checked)。 
checked exceptions: 通常是从一个可以恢复的程序中抛出来的,并且最好能够从这种异常中使用程序恢复。比如FileNotFoundException, ParseException等。

unchecked exceptions: 通常是如果一切正常的话本不该发生的异常,但是的确发生了。比如ArrayIndexOutOfBoundException, ClassCastException等
不需要检查,所以不需要try catch
发表于 2015-11-12 23:12:30 回复(1)
这题有点恶心,逐个选项给大家说明一下
A: 基类没什么好说的,虽然Error和Exception都实现了Throwable, 但这三个确实都是基类,后半句我重写一下有觉得它文字描述有问题的应该就懂      了
    实现 Throwable ; RuntimeException 和 IOException 等继承 Exception
B: 注意括号里的不考虑Error, 这里是说Exception下的所有异常类均可捕捉, “一般是外部错误” 这里没什么好怼的吧,毕竟人家都说了一般
C: 这句话是我这题里面唯一看的明白的了, OOM嘛,大家都懂就不说了
D: 注意“必须”, java里面异常允许被抛出, 要记得 throws 关键词的使用

发表于 2020-10-14 16:58:37 回复(1)
A      Throwable是类,应该写为继承
B        也可以抛出,说必须在当前类就太限制
C        无
D        一般不捕获,代码问题需要处理,不然捕获了给谁处理呢?
严谨的看就是选C
发表于 2020-01-03 08:49:07 回复(1)
b选项的话,我们一般不捕捉Error吧,所以b有问题吧
发表于 2015-11-25 17:11:22 回复(8)
B错在可以使用throw一个异常,也可以try/catch
发表于 2016-08-15 17:15:21 回复(1)

1.异常结构:
Throwable
1.Error (非受检查异常)
2.Exception
(1) RuntimeException (非受检查异常)
(2) IOException (受检查异常)


2. (1)Error类层描述了java运行时系统内部错误和资源耗尽错误
(2)Exception层次结构分为两个分支:
RuntimeException:由程序错误导致的异常。如错误的类型转换、数组访问越界、访问Null指针。“如果出现RuntimeException异常,那么一定是你的问题”;
其他异常:程序本身没有问题,但由于像I/O错误这类异常问题属于其他异常。例如:试图在文件尾部读取数据、试图打开一个不存在的文件等。

3. Java语言规范将派生于Error类或RuntimeException类的异常成为非受检查异常,所有其他异常为受检查异常

4. 如果子类覆盖超类中的一个方法,子类方法中声明的受检查异常不能比超类方法中声明的异常更通用。如果超类方法中没有抛出任何受检查异常则子类也不能抛出任何受检查异常。一旦方法中抛出了异常,这个方法就不能返回给调用者,不必为返回默认值和错误代码担忧。

5.
try{
code
more code
}catch(ExceptionType e){
handler for this type
}finally{

}
(1)如果try快中抛出了一个在catch子句中说明的异常类,那么程序将跳过try语句的其余代码,执行catch子句中的处理器代码。
(2)如果方法中的任何代码抛出了一个在catch子句中都有声明的异常类型,那么方***立即退出。
(3)无论是否抛出异常finally语句块最终都会执行。


6.当try块中包含return语句时,在执行return语句前会先执行finally块,如果finally块中也有return语句,这个return语句的返回值会将try块中return语句的返回值覆盖掉。

7.如果try块中抛出异常,finally中也抛出相同类型异常,那么原始异常将会丢失,转而抛出finally 中的异常

8.jdk1.7引入了资源自动关闭的接口AutoCloseable。一些资源也实现了该接口,如preparedStatement、Connection、InputStream outputStream等等资源接口。在使用的时候只需要把资源在try块中用小括号括起来就可以了。
try
(
PreparedStatement pstmt = toConn.prepareStatement(sql);
PreparedStatement pstmt1 = fromConn.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
ResultSet rs1 = pstmt1.executeQuery()
)
{
if(rs.next() || rs1.next()){
}
}
catch (Exception e) {
e.printStackTrace();
}
编辑于 2020-03-09 13:28:00 回复(0)

b中也可以抛出异常

发表于 2018-07-08 14:31:11 回复(0)
感觉b有问题吧
发表于 2016-01-06 15:48:12 回复(2)
A是什么鬼??是语文没学好么? 这句什么意思?
基类为 Throwable,Error 和 Exception 
难道不是throwable是error和exception的基类?
实现 Throwable, RuntimeException 和 IOException 等继承 Exception
这又是什么意思?难道这句把throwable,runtimeexception和IOException并列,还继承Exception最后还对了?
发表于 2022-06-06 11:51:42 回复(4)
A,Throwable前面还说是基类,后面怎么就实现了呢,明显有问题啊
发表于 2020-09-09 21:34:48 回复(0)
Java异常相关如下图所示

编辑于 2019-10-21 17:03:42 回复(0)
B是错在也可以抛出,一不定是捕获
发表于 2018-07-13 15:36:29 回复(0)