当前位置:首页 » 编程语言 » java的运行时异常

java的运行时异常

发布时间: 2022-03-07 05:02:48

A. java中什么叫运行时异常

(1)运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
当出现RuntimeException的时候,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
出现运行时异常后,如果没有捕获处理这个异常(即没有catch),系统会把异常一直往上层抛,一直到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。

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

B. JAVA中可以捕获运行时异常吗

只要是 Throwable 的子类实例都可以捕获~

只是不推荐,因为运行时异常多是由于逻辑错误导致的,属于应该解决的 bug。但是有时候为了增强用户体验,保证 Crash 次数降到最低,人为捕捉一些运行时异常……

C. java中运行时异常和非运行时异常的定义及其异同是什么

这个网络上找找很多的,主要区别在于非运行时异常必须在代码中显示的声明捕获也就是放在try{}catch(){}块中,或者在方法上申明throws 来抛出异常,
运行时异常不需要特意的申明,一般运行时异常都是虚拟机出现问题了才会报,比如你写个死循环导致内存不足什么的

D. java出现运行时异常有什么问题

-数组越界访问
ArrayStoreException -
数据存储异常,写数组操作时,对象或数据类型不兼容
ClassCastException - 类型转换异常
IllegalArgumentException
- 方法的参数无效
IllegalThreadStateException -试图非法改变线程状态,比方说试图启动一已经运行的线程
NullPointerException -
试图访问一空对象的变量、方法或空数组的元素
NumberFormatException -
数据格式异常,试图把一字符串非法转换成数值(或相反)
SecurityException -
如果Applet试图执行一被WWW浏览器安全设置所禁止的操作
-如改变了某一类定义,却没有重新编译其他引用了这个类的对象。如某一成员变量的声明被从静态改变为非静态,但其他引用了这个变量的类却没有重新编译,或者相反。如删除了类声明中的某一域或方法,但没有重新编译那些引用了这个域或方法的类
OutOfMemoryException -
内存不足,通常发生于创建对象之时
NoClassDefFoundException-JAVA运行时系统找不到所引用的类
IncompatibleTypeException -试图实例化一个接口,Java运行时系统将抛出这个异常
UnsatisfiedLinkException-如果所需调用的方法是C函数,但Java运行时系统却无法连接这个函数
系统内部故障所导致的异常情况,可能是因为Java运行时系统本身的原因。如果发现一可重现的InternalException,可以直接给Sun公司发电邮[email protected]

E. Java之运行时异常与编译时异常区别

Java中用2种方法处理异常:
1.在发生异常的地方直接处理;
2.将异常抛给调用者,让调用者处理。
Java常见的异常:
(1)编译时异常:Java.lang.Exception
(2)运行期异常:Java.lang.RuntimeException
Java.lang.Exception和Java.lang.Error继承自Java.lang.Throwable;
Java.lang.RuntimeException继承自Java.lang.Exception.
编译时异常:
程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。Java编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常:
这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,Java编译器强制要求处理这类异常。

F. JAVA问题:运行时异常和一般异常有何区别

运行错误?一般错误?
错误好像是不分类的吧,错误一般是通不过编译的,
eg:在eclipse中编程时,如果调的是自动编译,每次出现红线或者出现红叉时
那个就叫做错误。
我感觉你说的应该是异常:
异常分为运行时异常和受检测异常,
运行时异常是系统运行时发出的异常,程序员控制不了的,这类异常不需要try,catch和throws
exception语句,是由java虚拟机抛出的,并且自动捕获抛出的main方法中,我们不能对这个异常进行处理,它会直接终止程序。一般遇到的就是空指针异常,数组越界异常等,这些异常一般是我们可以在前台控制台可以看到的,相信你也看到过吧。
受检测异常指的就是我们可以处理的异常,我们可以通过try
catch语句捕获并且处理(也可以不处理直接向上层抛出),处理之后程序还可以继续执行,不会终止程序,如果每一层都每一处理,则会终止程序。
希望你看了后能有所收获。(提示:其实异常和错误都继承了Throwable这个类,至于细致的你自己看看书)

G. Java的运行时异常,为什么要有运行时异常,设置这个类有什么好处

异常分两种。
一种就是不用我们加上异常类,在编译过程会自动提示编译不通过,一般是属于语法有问题。
第二种就是运行时异常,这个异常信息会告诉你哪里的代码写得有问题,一般属于逻辑错误。
明白了没

H. java 运行时异常和受控异常

异常就两种 运行异常 , try catch异常 另外一个和异常同级叫 error
他问的你是try catch异常 看来你被绕进去了,

I. java异常问题: 1,对RuntimeException运行时异常的处理方式有哪些,都是怎么处

对整个问题不是很理解,异常的处理方式通常有两种,捕获和不捕获,方法产生异常时如果用try……catch……捕获了,你可以按照你想要的逻辑进行处理(打日志,判定失败等),这个看个人了,如果不捕获,那个包含这个异常的方法声明出必须抛出,有上层方法处理,如果到main方法也是抛出,经交给java虚拟机处理。

方法内部如果捕获了且抛出的,方法要加声明;如果不抛出,方法上不加声明,但是如果不捕获,是一定要加声明的。

J. java运行时异常有哪些

常见的五种异常:
1、ClassCastException(类转换异常)
2、IndexOutOfBoundsException(数组越界)
3、NullPointerException(空指针)
4、ArrayStoreException(数据存储异常,操作数组时类型不一致)
5、还有IO操作的BufferOverflowException异常

热点内容
c语言拷贝函数 发布:2025-01-13 10:52:23 浏览:781
php判断手机访问 发布:2025-01-13 10:46:06 浏览:762
数据库十张表 发布:2025-01-13 10:41:50 浏览:395
仿php 发布:2025-01-13 10:41:40 浏览:811
后缀解压什么意思 发布:2025-01-13 10:35:17 浏览:185
索尼安卓11如何退回安卓10 发布:2025-01-13 10:24:09 浏览:127
程序编译结构 发布:2025-01-13 10:24:08 浏览:90
创建邮箱地址服务器连接错误 发布:2025-01-13 09:49:24 浏览:723
linux编辑文档 发布:2025-01-13 09:47:51 浏览:435
二手制冷压缩机 发布:2025-01-13 09:43:59 浏览:585