首页 > 试题广场 >

对于非运行时异常,程序中一般可不做处理,由java虚拟机自动

[单选题]
对于非运行时异常,程序中一般可不做处理,由java虚拟机自动进行处理。
  • 正确
  • 错误
运行时异常发生在运行期,相对底层,表层的编译器检查不出来因此也不会帮你捕获,程序也不会报错,你也不需要自行捕获。因此问题比较难发现,造成后果比较严重;
非运行时异常,错误到编译器就被拦截了,如果你不catch,编译器是不允许你运行代码的,平时IDE报红线的地方很多就是非运行时异常。

编辑于 2020-04-15 13:00:16 回复(0)
更多回答
运行异常,可以通过java虚拟机来自行处理。非运行异常,我们应该捕获或者抛出
发表于 2017-08-01 16:09:35 回复(6)
Java异常都继承自类Throwable,Throwable子类有Error和Exception,其中Exception又分为运行时异常和编译时异常。编译时异常是未雨绸缪性质的异常,是防范,需要显示处理。运行时异常是程序员问题造成,并不强制进行显示处理。
发表于 2017-08-14 00:23:19 回复(7)
选B
受检异常,必须被处理,必须try...catch。

编辑于 2018-07-23 10:35:04 回复(1)

1.Java异常机制

Java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。Java中的异常分为两大类:错误Error和异常ExceptionJava异常体系结构如下图所示:

2.Throwable

Throwable类是所有异常或错误的超类,它有两个子类:ErrorException,分别表示错误和异常。其中异常Exception分为运行时异常(RuntimeException)和非运行时异常,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)

3.Error

一般是指java虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该捕获Error对象,也无须在其throws子句中声明该方法抛出任何Error或其子类。

4.运行时异常和非运行时异常

(1)运行时异常都是RuntimeException类及其子类异常,如NullPointerExceptionIndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

当出现RuntimeException的时候,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。 

出现运行时异常后,如果没有捕获处理这个异常(即没有catch),系统会把异常一直往上层抛,一直到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。 

如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。

(2)非运行时异常RuntimeException以外的异常,类型上都属于Exception类及其子类。如IOExceptionSQLException等以及用户自定义的Exception异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch并处理,否则程序就不能编译通过。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

5. 常见RuntimeException

ArrayStoreException: 试图将错误类型的对象存储到一个对象数组时抛出的异常

ClassCastException: 试图将对象强制转换为不是实例的子类时,抛出该异常

IllegalArgumentExceptio:抛出的异常表明向方法传递了一个不合法或不正确的参数

IndexOutOfBoundsException:指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出

NoSuchElementException:表明枚举中没有更多的元素

NullPointerException: 当应用程序试图在需要对象的地方使用 null 时,抛出该异常

发表于 2018-10-10 08:48:31 回复(6)
非运行异常=检查异常 需要try catch捕获或者throws抛出
发表于 2017-08-04 21:01:33 回复(0)
编译时异常(非运行时异常):出现的可能性比较大,需要我们通过trycatch防范。比如今天天气很阴,可能会下雨,这时jvm就会提醒你需要带把伞防范一下,所以这类异常通常需要我们去处理。
运行时异常:这类异常的出现的可能性不高,通常是代码的逻辑出现错误产生的异常。比如你过马路时可能突然被一辆刹车失控的车撞上,这可能吗?当然有可能,只不过可能性很低,你不可能每次过马路都防范着每辆车吧,这样的话太累了。程序也是如此,不可能一直用trycatch一直去防范着每个可能产生运行时异常的地方。
发表于 2021-12-20 20:39:27 回复(0)
Java中的异常类分类及处理:Java中所有的异常类的根都是Throwable类,Throwable类的父类为Object,异常类包括Error类Exception类。其中所有的异常类可以分为三类:系统错误Error运行时异常RuntimeException其他异常,其中运行时异常RuntimeException是Exception的子类,发生系统错误Error一般什么都做不了发生运行时异常RuntimeException都会由JVM进行处理,而非运行时异常则必须由程序员手动去捕获或者显式抛出异常进行显示的处理,所以Error和RuntimeException以及他们的子类也被称为“免检异常”,所有其他的异常即非运行时异常被称为“必检异常
发表于 2020-01-12 19:31:41 回复(0)
异常分为运行时异常和非运行时异常。Error类和RuntimeException类及其子类都属于运行时异常,编译器在编译程序时对这类异常不做检查,在程序中可以不作处理,直接由运行时系统来处理,必要时用户也可以处理。Exception类及其子类(不包含RuntimeException类及其子类)属于非运行异常,在编译程序时,要检查程序是否对其进行了处理,如果没有处理,则编译器会报错。
发表于 2017-08-22 10:30:34 回复(0)
非运行异常=检查异常 需要try catch捕获或者throws抛出【这个说的很精辟】
发表于 2019-03-19 19:38:10 回复(0)
checked异常如果不在代码里处理,那么就会编译不通过。checked异常只要包括IOException等;
unchecked异常如果不在代码里处理,那么编译也会通过。unchecked异常包括Error和RuntimeException。
发表于 2018-02-25 21:07:33 回复(0)
b
发表于 2017-07-27 13:46:19 回复(0)
错误
发表于 2017-07-27 12:31:51 回复(0)
java的异常都是继承Throwable, Throwable的子类有Error和Exception,其中Exception又分为运行时异常和编译时异常。编译时异常是防范的,预防的,需要显示。运行时异常是程序员造成的,并不强制进行显示处理。而我们应该捕获和抛出非运行异常。
编辑于 2018-09-26 15:34:09 回复(0)
checked异常都是可以被处理的异常,所以Java程序必须显示处理checked异常。
发表于 2017-07-27 15:09:44 回复(0)
编译器提示需要使用try catch的异常就是非运行异常(也叫做编译异常),这种类型的异常需要我们手动抛出;其他的异常是运行时异常,这种异常由JVM进行处理。
发表于 2023-10-19 14:24:49 回复(0)
非运行时异常 (编译异常):是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。 通俗的话说就是在写代码时出现红线,需要try catch或者throws时出现的异常。
发表于 2019-02-22 10:25:18 回复(0)
非运行时异常就是我们要处理,不是java来处理
编辑于 2024-02-15 00:21:58 回复(0)
总结一句话,异常需要自己处理,只是分受检和不受检,运行时异常为非受检异常,需要自己到可能出现的异常并且try-catch,受检异常比如IOException在写代码时就会让你处理,try-catch或抛给上一层,而Error这种错误是编码人员无法控制的,也没有办法处理
发表于 2023-10-19 10:04:53 回复(0)
运行异常,可以通过java虚拟机来自行处理。非运行异常,我们应该捕获或者抛出
发表于 2023-07-13 09:58:20 回复(0)

B 错误。

非运行时异常(Unchecked Exception)通常由程序员编码错误或者其他无法预测的异常情况引起,例如空指针引用、数组下标越界等。这些异常通常发生在运行时,如果不对其进行处理,程序将会终止。

Java虚拟机不会自动处理非运行时异常,因为这些异常通常涉及到程序逻辑或者运行环境,需要程序员进行处理。如果不处理这些异常,将会导致程序出现严重的错误,甚至影响整个系统的稳定性。

因此,对于非运行时异常,程序中也需要进行相应的异常处理。常用的方法是使用try-catch语句捕获异常并进行处理,或者使用throws关键字将异常抛出给上层调用者处理。

发表于 2023-04-03 15:46:42 回复(0)