首页 > 试题广场 >

对于Java中异常的描述正确的是( )

[单选题]

对于Java中异常的描述正确的是( )

  • 用throws定义了方法可能抛出的异常,那么调用此方法时一定会抛出此异常。
  • 如果try块中没有抛出异常,finally块中的语句将不会被执行。
  • 抛出异常意味着程序发生运行时错误,需要调试修改
  • Java中的非检测(unchecked)异常可能来自RuntimeException类或其子类。

A错 在调用此方法的时候 也可以再次申明以将异常交由更高一级处理。
B错 finally块中的语句一定会被执行。除非catch块中有System.exit(0)
C错 抛出异常不一定是运行时异常,也有可能是编译时异常。
D对 运行时异常的特点是Java编译器不会检查它。

发表于 2018-04-09 14:06:25 回复(5)
更多回答
Exception(异常)
是程序本身可以处理的异常。主要包含RuntimeException等运行时异常和IOException,SQLException等非运行时异常。
运行时异常 包括:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。
非运行时异常(编译异常) 包括:RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常
发表于 2017-05-06 22:18:30 回复(7)
D 选项也不对吧  可不检测(unchecked)异常也可能来自Error吧。
发表于 2017-05-04 21:27:50 回复(12)
java提供了两种异常错误的异常类,分别为ERROR和EXCEPTION,错误和异常,他们的父类是Throwable.
error表示程序在运行期间出现了严重的错误,并且该错误是不可恢复的。
exception表示可恢复的异常,是编译器可以捕捉到的。分两类:检查异常(checked exception)和运行时异常(runtime exception)
个人觉得本题的可不检测是针对检查来说的也就是运行时异常。
发表于 2017-08-19 14:55:50 回复(0)

借鉴某同志的图

发表于 2018-06-03 16:25:47 回复(1)
A、用throws定义了方法可能抛出的异常,但是调用此方法不一定会抛出异常,需要去try{}catch{}    throws的异常
B、不管try块中有没有抛出异常,finally块中的语句都会被执行。
C、
抛出异常意味着程序发生(“运行时”)错误,不一定是运行时才发生错误,也可以是编译时发生的
D、check翻译中文是“检查”的意思,un开头表否定,表示非检查性异常
发表于 2018-11-19 22:03:59 回复(0)
A选项哪里错了?   
发表于 2017-06-12 10:24:17 回复(5)
不少人选A,其实不一定,因为你可以继续抛。
发表于 2017-07-07 22:23:22 回复(1)
认真解析
A.throws只是声明这个方法中可能抛出的异常,如果抛出异常它将会交给上一级处理。既然是可能,那它就也可能没有抛出异常
B.final代码块一定执行(千万别拿关闭jvm和停电杠我。。。)
C.异常有编译时异常和运行时异常,这都是有可能的
D.非检测异常说明不是在编译检测时出的异常,那就只剩下运行时异常了,也就是
RuntimeException类或其子类。
发表于 2021-12-09 10:56:31 回复(0)
已检查的异常:编译时提示需要try 或 throw
未检查的异常:
            举例: int i = 18;
                        i = i / 0;
此时,系统没有检测,但是最后输出报异常,这就属于未检查异常
所有异常的父类是Throwable ,在父类下有子类Error 和 Exception ,在java中,只有Error 与 RuntimeException 属于不检查异常
发表于 2021-09-18 18:05:16 回复(0)
Exception和error的父类都是Throwable
发表于 2018-11-10 21:47:57 回复(0)
Java中的异常分类:    
可分为:     
RuntimeException:  
运行时异常(战之过,程序员的过错),也叫做unchecked Exception, 非编译期异常(编译器检查不出来,只有运行时才能显现出来的异常,叫做非编译异常,或者运行时异常,一般是由于程序员逻辑错误引起的,如空指针异常,数组越界异常等,所以称之为战之过)     

Exception中除了RuntimeException之外的所有异常,比如IOException,SQLException等       
非运行时异常(非战之过),也叫做检查异常(check Exception) ,编译异常(编译期可以检查出来的异常,不需要运行就可以检测到的异常,比如IOException,SQLException,等预期之内的异常,因为可以预料到,因此是必须检查的异常,所以,也叫做check Exception)    

常见的,IOException,SQLException,等所有继承与Exception,但是不继承与RuntimeException的,都属于非运行时异常,是必须在编写程序的时候就要throw的    
所有继承与RuntimeException的,都是程序员逻辑错误引起的异常,比如空指针异常等,是unchecked Exception    
发表于 2018-07-10 20:03:31 回复(0)
c选项:有可能是已捕获异常,如io异常,file相关异常;也有可能是内存溢出,不一定是代码问题。
发表于 2018-06-05 09:35:47 回复(1)
不受检查异常:派生于 Error 或 RuntimeException 的所有异常,本人认为D答案说法欠妥当啊,各位大佬们!

    +-----------+
                 | Throwable |
                 +-----------+
                  / \ / \ +-------+          +-----------+
          | Error |          | Exception |
          +-------+          +-----------+
           /  |  \           / | \        \
          \________/       \______/ \ +------------------+ unchecked        checked | RuntimeException |
                                        +------------------+
                                         /   |    | \
                                        \_________________/ unchecked
发表于 2017-08-26 11:21:45 回复(1)

D也错了吧,还有Error!
不可查异常(编译器不要求强制处置的异常):包括运行时异常(RuntimeException与其子类)和错误(Error)。
图片说明

发表于 2017-07-12 21:27:53 回复(2)
A选项:它的意思是在方法上使用throws抛出此方法可能发生的所有异常 ,如果写的代码没问题,没用异常,那么就不会抛异常。
发表于 2021-08-22 20:08:33 回复(0)
A错 在调用此方法的时候 也可以再次申明以将异常交由更高一级处理。 B错 finally块中的语句一定会被执行。除非catch块中有System.exit(0)。 C错 抛出异常不一定是运行时异常,也有可能是编译时异常。 D对 运行时异常的特点是Java编译器不会检查它。
发表于 2022-12-11 15:15:19 回复(0)
A错 在调用此方法的时候 也可以再次申明以将异常交由更高一级处理。 B错 finally块中的语句一定会被执行。除非catch块中有System.exit(0)。 C错 抛出异常不一定是运行时异常,也有可能是编译时异常。 D对 运行时异常的特点是Java编译器不会检查它。
发表于 2022-10-13 08:11:09 回复(0)

A错在 如果方法只在方法头 throws Exception{},而方法里面没有实际的 异常对象 (引起异常的原因,或throw new Exception() ),也就是没有异常,何来抛出(抛什么呢)。就不会抛出(即给上一级处理)。抛出(声明(throws))==给上一级,“前提条件是要有异常,不然没任何效果!!”
B错 finally块中的语句一定会被执行。除非catch块中有System.exit(0)。
C错 抛出异常不一定是运行时异常,也有可能是编译时异常。
D对 运行时异常的特点是Java编译器不会检查它。
发表于 2022-10-05 11:30:09 回复(0)
//只有执行到,才会抛出异常
        
        if(10 < 2) {
            int i = 10 / 0;
        }

发表于 2022-09-13 15:09:02 回复(0)