java中抛出RuntimeException异常,为什么可以不用撰写代码去捕获它?
发布网友
发布时间:2022-05-29 16:25
我来回答
共5个回答
热心网友
时间:2023-10-24 21:38
异常分为运行时异常(RuntimeException)、受检异常(Exception)、系统错误error。
RuntimeException,也就是运行时异常,表示代码本身存在BUG,比如ArrayIndexOutOfBoundsException,数组下标越界,数组定义的长度不够实际使用,代码若不调BUG进行处理肯定还会报错,控制台一旦报RuntimeException,就必须在代码中找BUG,因为代码BUG是人为粗心制造的,不是try-catch一下就能解决的。try-catch用在代码BUG上是毫无意义的,只需要写代码时谨慎点就能减少BUG,而不是try-catch。
非RuntimeException,就是受检异常。比如处理文件流时的I/O问题,就属于编译时异常,相当于假设有IO异常就利用try-catch对其进行处理,或者 throws即可。
error,通常是系统出现了不可控制的错误,这个通常与程序无关,所以是不需要处理的。
下面给出运行时异常与受检异常的清晰定义:
①受检查异常表示程序可以处理的异常,如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而使程序恢复运行,不至于终止程序。例如,喷墨打印机在打印文件时,如果纸用完或者墨水用完,就会暂停打印,等待用户添加打印纸或更换墨盒,如果用户添加了打印纸或更换了墨盒,就能继续打印。
②运行时异常表示无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误操作。一旦出现了错误操作,建议终止程序并仔细的debug,因此Java编译器不检查这种异常。
热心网友
时间:2023-10-24 21:39
这是java的默认配置。
当你把一个异常定义在方法的throws定义中,你就可以不处理这个异常,系统会自动把该异常抛出。 而RuntimeException则是java设计中所有方法都默认定义在throws中了,所以只要你不捕获,就会一层一层的往上抛出。
除非你显示的标准要捕获它。否则不会被捕获。也不会造成编译异常。
其实大部分的RuntimeException,要么是系统异常。无法处理。例如网络问题。
要么就是应该在UT中发现的,例如空指针异常。
热心网友
时间:2023-10-24 21:39
有很多事都是不可以预知的,比如你在路上走很难保证不被谁磕到碰到,事先准备去应付这种事情是很无聊且麻烦的。RuntimeException也是这个道理。要想真搞明白,好好看看书和API的帮助文档吧,在这里几句话是说不清楚的。
要想搞清楚是为什么,就要看外国人写的书。推荐Thinking in java。国内作者的就算了,太次
热心网友
时间:2023-10-24 21:40
因为JVM自动会捕获RuntimeException,而这些异常,编辑器是无法检测的!
至于有中那些子类,多了去了,想了解的话,去看api
热心网友
时间:2023-10-24 21:40
因为它是运行期的异常,只有编译期的异常才能被捕获!
java中抛出RuntimeException异常,为什么可以不用撰写代码去捕获它?
RuntimeException,也就是运行时异常,表示代码本身存在BUG,比如ArrayIndexOutOfBoundsException,数组下标越界,数组定义的长度不够实际使用,代码若不调BUG进行处理肯定还会报错,控制台一旦报RuntimeException,就必须在代码中找BUG,因为代码BUG是人为粗心制造的,不是try-catch一下就能解决的。try-catch用...
runtimeexception异常
RuntimeException是Java运行时异常的一种,通常是由于程序中的错误导致的。这类异常在程序运行过程中被抛出,是未经检查的异常,需要程序员进行捕获和处理。二、详细解释 1. RuntimeException异常概述 RuntimeException异常是Java中一种常见的运行时异常。这种异常通常是由于程序中的错误,如逻辑错误、空指针...
...ArithmeticException或RuntimeException异常不用在函数上声明呢?求...
RuntimeException是在运行中才会出现的。你在编写代码的时候能预知程序运行会出什么问题吗?所以无法声明.ArithmeticException是继承runtimeException,所以不需要声明
一个关于Java的throw exception的问题
runtimeException是由JVM检查并抛出的异常; 通常是不需要程序员手动捕捉处理的异常.,thows Exception 一般是来用声明函数抛出异常的.,谁调用这个函数就由谁去捕捉处理 thow Exception 是在函数体中.,程序员可以自定义的一些异常.你的这段代码中.throw new RuntimeException();//此处是你自定义了一个异...
Java编程:对于运行时异常推荐不处理的原因
在Java编程中,有一类异常称为运行时异常(RuntimeException)。相对于受检异常(Checked Exception),运行时异常是一种不要求强制处理的异常类型。在某些情况下,推荐不处理运行时异常的原因如下:更系统全面的学习资料,点击查看首先,运行时异常通常是由程序逻辑错误导致的,例如空指针异常(NullPointer...
请问runtimeexception说是运行时异常 可以不进行处理 那么不处理程序又...
RuntimeException是运行时异常,表示你的代码本身存在BUG.不是编译错误,所以可以运行.应该是逻辑上的错误,比如数组下标越界,等等. 一定要处理
JAVA RuntimeException 问题
教程说RuntimeException可以不处理,但是RuntimeException如果不处理程序会中止,想要程序正常运行下去是不是还是要编写try-catch来捕捉和处理?常见的ArrayIndexOutOfBoundsExceptio... 教程说RuntimeException可以不处理,但是RuntimeException如果不处理程序会中止,想要程序正常运行下去是不是还是要编写try-catch来捕捉和处理?
throws抛出的异常必需被捕获吗
1.你可以定义方法的时候加上显式的需要抛出的异常 Java代码 public returnType methodName(args) throws YourException{ ...} 如果异常是继承RuntimeException,则不需要强制你写try catch语句来保证抛出的异常得到处理。如果继承的是Exception,则一定需要try catch语句保证异常得到处理,或者在该方法中显式...
什么是runtimeException
在Java编程中,RuntimeException是一个重要的概念,它代表了那些在程序正常运行时可能会抛出的异常的顶级类。这类异常无需在方法签名的throws子句中显式声明,因为它们通常是由程序员在代码内部处理或捕获的。异常处理机制在Java中被分为中止模型和继续模型,尽管理论上两者并存,但实践中,中止模型更为常见...
代码写的足够好的话,是不是RuntimeException 就应该不会出现了。
RuntimeException是运行时异常,因为是非检测异常,所以在编译的时候不会被编译工具检测出异常,所以可以不用捕获异常。但是可以不用捕获异常,并不代表不用做异常处理。通常情况下,为了程序的健壮性,我们都需要进行异常的捕获,反正运行时未知异常使得其无法正常工作,甚至崩溃。顺便说下,代码写的足够好,...