常见JAVA运行时异常有哪些? java运行时异常有哪些

java\u8fd0\u884c\u65f6\u5f02\u5e38\u6709\u54ea\u4e9b

\u5e38\u89c1\u7684\u4e94\u79cd\u5f02\u5e38\uff1a
1\u3001ClassCastException(\u7c7b\u8f6c\u6362\u5f02\u5e38)
2\u3001IndexOutOfBoundsException(\u6570\u7ec4\u8d8a\u754c)
3\u3001NullPointerException(\u7a7a\u6307\u9488)
4\u3001ArrayStoreException(\u6570\u636e\u5b58\u50a8\u5f02\u5e38\uff0c\u64cd\u4f5c\u6570\u7ec4\u65f6\u7c7b\u578b\u4e0d\u4e00\u81f4)
5\u3001\u8fd8\u6709IO\u64cd\u4f5c\u7684BufferOverflowException\u5f02\u5e38

\u5e38\u89c1\u7684\u4e94\u79cd\u5f02\u5e38\uff1a
1\u3001ClassCastException(\u7c7b\u8f6c\u6362\u5f02\u5e38)
2\u3001IndexOutOfBoundsException(\u6570\u7ec4\u8d8a\u754c)
3\u3001NullPointerException(\u7a7a\u6307\u9488)
4\u3001ArrayStoreException(\u6570\u636e\u5b58\u50a8\u5f02\u5e38\uff0c\u64cd\u4f5c\u6570\u7ec4\u65f6\u7c7b\u578b\u4e0d\u4e00\u81f4)
5\u3001\u8fd8\u6709IO\u64cd\u4f5c\u7684BufferOverflowException\u5f02\u5e38

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

2、java运行时异常是可能在java虚拟机正常工作时抛出的异常。java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)。

检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。

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


扩展资料:

Java特点

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载和多继承特征,并且不使用主文件,免去了预处理程序。

因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。

参考资料:百度百科-Java



java异常发生的原因有很多,通常包含以下几大类:

1、用户输入了非法数据。

2、要打开的文件不存在。

3、网络通信时连接中断,或者JVM内存溢出。

这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。

要理解Java异常处理是如何工作的,你需要掌握以下三种类型的异常:

1、检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。

2、运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。

3、错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

扩展资料

java异常处理

1、处理异常。针对该异常采取一些行动,例如修正问题、提醒某个人或进行其他一些处理,要根据具体的情形确定应该采取的动作。再次说明,调用printStackTrace算不上已经“处理好了异常”。

2、重新抛出异常。处理异常的代码在分析异常之后,认为自己不能处理它,重新抛出异常也不失为一种选择。

3、把该异常转换成另一种异常。大多数情况下,这是指把一个低级的异常转换成应用级的异常(其含义更容易被用户了解的异常)。

4、不要捕获异常。

参考资料:百度百科:异常处理



1、主线程java.lang.UnsupportedClassVersionError中的异常:

当您的java类是从另一个JDK版本编译并且您尝试从另一个Java版本运行它时,会出现此异常。

2、主线程java.lang.NoClassDefFoundError中的异常:

此异常有两种变体。第一个是您提供类全名和.class扩展名的地方。第二种情况是找不到Class。

3、主线程java.lang.NoSuchMethodError中的异常:

main:当您尝试运行没有main方法的类时会出现此异常。

4、线程“main”中的异常java.lang.ArithmeticException:

每当从main方法抛出任何异常时,它都会打印异常是控制台。第一部分解释了从main方法抛出异常,第二部分打印异常类名,然后在冒号后打印异常消息。

5、java.lang.ClassNotFoundException 

异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可  

6、java.lang.NoSuchMethodError   

方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。 

7、 java.lang.IndexOutOfBoundsException     

索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。  

扩展资料:

Java异常处理最佳实践

参考资料来源:百度百科——Exception

参考资料来源:百度百科——异常处理



1,java.lang.NullPointerException 

这个异常的解释是 "程序遇上了空指针 ",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。

2,java.lang.ClassNotFoundException 

异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可  

3,java.lang.ArrayIndexOutOfBoundsException 

这个异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了.

4,java.lang.NoSuchMethodError   

方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。

5,java.lang.IndexOutOfBoundsException     

索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。  

6,java.lang.NumberFormatException     

数字格式异常。当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。

7,java.sql.SQLException 

Sql语句执行异常

8,java.io.IOException 

输入输出异常 

9,java.lang.IllegalArgumentException 

方法参数错误

10java.lang.IllegalAccessException 

无访问权限异常

扩展资料:

Java技术应用领域:

1、Android应用

许多的 Android应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机中都支持JAVA游戏,这就使很多非编程人员都认识了JAVA。

2、在金融业应用的服务器程序

Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全 。大型跨国投资银行用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。

3、网站

Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0以及frameworks。即使是简单的 servlet,jsp和以struts为基础的网站在政府项目中也经常被用到。例如医疗救护、保险、教育、国防以及其他的不同部门网站都是以Java为基础来开发的。

4、嵌入式领域

Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。

5、大数据技术

Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。

6、高频交易的空间

Java平台提高了这个平台的特性和即使编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。

7、科学应用

Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。



常见JAVA运行时异常有:

1、ArithmeticException - 算术运算中,被0除或模除。

2、ArrayIndexOutOfBoundsException - 数组越界访问。

3、ArrayStoreException - 数据存储异常,写数组操作时,对象或数据类型不兼容。

4、ClassCastException - 类型转换异常。

5、IllegalArgumentException - 方法的参数无效。

6、IllegalThreadStateException - 试图非法改变线程状态,比方说试图启动一已经运行的线程。

7、NullPointerException - 试图访问一空对象的变量、方法或空数组的元素。

8、NumberFormatException - 数据格式异常,试图把一字符串非法转换成数值(或相反)。

9、SecurityException - 如果Applet试图执行一被WWW浏览器安全设置所禁止的操作。

10、IncompatibleClassChangeException - 如改变了某一类定义,却没有重新编译其他引用了这个类的对象。

如某一成员变量的声明被从静态改变为非静态,但其他引用了这个变量的类却没有重新编译,或者相反。

如删除了类声明中的某一域或方法,但没有重新编译那些引用了这个域或方法的类。

11、OutOfMemoryException - 内存不足,通常发生于创建对象之时。

12、NoClassDefFoundException - JAVA运行时系统找不到所引用的。

13、IncompatibleTypeException - 试图实例化一个接口,Java运行时系统将抛出这个异常。

14、UnsatisfiedLinkException - 如果所需调用的方法是C函数,但Java运行时系统却无法连接这个函数。

15、InternalException - 系统内部故障所导致的异常情况,可能是因为Java运行时系统本身的原因。

如果发现一可重现的InternalException,可以直接给Sun公司发电邮[email protected]

扩展资料:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。

Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。

JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。

主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK 。

另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境 。

JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。

但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可 。

参考资料:百度百科-Java攻略:Java常见问题的简单解法



  • 璇峰摢浣峧ava楂樻墜甯垜鎬荤粨涓涓嬪湪java涓鐨寮傚父澶勭悊鐨勭绫.
    绛旓細鍥炵瓟锛氱畻鏈寮傚父绫:ArithmeticExecption 绌烘寚閽堝紓甯哥被:NullPointerException 绫诲瀷寮哄埗杞崲寮傚父:ClassCastException 鏁扮粍璐熶笅鏍囧紓甯:NegativeArrayException 鏁扮粍涓嬫爣瓒婄晫寮傚父:ArrayIndexOutOfBoundsException 杩濊儗瀹夊叏鍘熷垯寮傚父:SecturityException 鏂囦欢宸茬粨鏉熷紓甯:EOFException 鏂囦欢鏈壘鍒板紓甯:FileNotFoundException 瀛楃涓茶浆鎹负鏁板瓧...
  • java鐨鍚勭寮傚父
    绛旓細鍑虹幇杩愯閿欒寰寰琛ㄧず浠g爜鏈夐敊璇,濡:绠楁暟寮傚父(濡傝0闄)銆佷笅鏍囧紓甯(濡傛暟缁勮秺鐣)绛夈傞潪杩愯寮傚父鏃Non_RuntimeException绫诲強鍏跺瓙绫荤殑瀹炰緥,鍙堢О涓哄彲妫娴嬪紓甯搞Java缂栬瘧鍣ㄥ埄鐢ㄥ垎鏋愭柟娉曟垨鏋勯犳柟娉曚腑鍙兘浜х敓鐨勭粨鏋滄潵妫娴婮ava绋嬪簭涓槸鍚﹀惈鏈夋娴嬪紓甯哥殑澶勭悊绋嬪簭,瀵逛簬姣忎釜鍙兘鐨勫彲妫娴嬪紓甯,鏂规硶鎴栨瀯閫犳柟娉曠殑throws瀛愬彞蹇呴』鍒楀嚭璇...
  • Java 甯歌鐨寮傚父鏈鍝嚑绉,鏈変粈涔堝尯鍒
    绛旓細NullPointerException: 绌烘寚閽堝紓甯搞傝彍楦熺紪绋嬬粡楠屽彂鐜拌繖涓紓甯告槸缁忓父浼氬彂鐢熺殑锛屽睘浜杩愯鏃跺紓甯銆2.ClassCastException: 绫诲瀷寮哄埗杞崲寮傚父銆Java鐨涓浜涜娉曠煡璇嗕笉澶啛鎮夌殑鏃跺欎細鍙戠敓鐨勫紓甯搞3.ArrayIndexOutOfBoundsException: 鏁扮粍涓嬫爣瓒婄晫寮傚父銆傜壒鍒甯歌鐨勪竴涓紓甯革紝绮楀績鐨勭▼搴忓憳閮戒細鐘殑閿欒銆4.Arithmetic...
  • JAVA 杩愯鏃跺紓甯閮鏈夊摢浜?
    绛旓細RuntimeException ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, Illegal...
  • java涓浠涔堝彨杩愯鏃跺紓甯
    绛旓細褰撳嚭鐜癛untimeException鐨勬椂鍊欙紝鎴戜滑鍙互涓嶅鐞嗐傚綋鍑虹幇杩欐牱鐨寮傚父鏃锛屾绘槸鐢辫櫄鎷熸満鎺ョ銆傛瘮濡傦細鎴戜滑浠庢潵娌℃湁浜哄幓澶勭悊杩嘚ullPointerException寮傚父锛屽畠灏辨槸杩愯鏃跺紓甯锛屽苟涓旇繖绉嶅紓甯歌繕鏄渶甯歌鐨勫紓甯镐箣涓銆傚嚭鐜拌繍琛屾椂寮傚父鍚庯紝濡傛灉娌℃湁鎹曡幏澶勭悊杩欎釜寮傚父锛堝嵆娌℃湁catch锛夛紝绯荤粺浼氭妸寮傚父涓鐩村線涓婂眰鎶涳紝涓鐩村埌鏈涓婂眰...
  • java閮鏈夊摢浜涘紓甯?
    绛旓細(鍦ㄧ紪璇戞椂鍑虹幇鐨勯敊璇苟涓嶆槸寮傚父,鎹㈠彞璇濊,寮傚父灏辨槸涓轰簡瑙e喅绋嬪簭杩愯鏃鍑虹幇鐨勭殑閿欒)銆 鈶 C++涓璴ogic_error涓Java涓鐨凴untimeException鏄瓑浠风殑,鑰宺untime_error涓嶫ava涓潪RuntimeException绫诲瀷鐨勫紓甯告槸绛変环鐨勩 3 寮傚父鐨勪娇鐢ㄦ柟娉 澹版槑鏂规硶鎶涘嚭寮傚父 鈶 璇硶:throws(鐣) 鈶 涓轰粈涔堣澹版槑鏂规硶鎶涘嚭寮傚父? 鏂规硶鏄惁鎶涘嚭...
  • JAVA蹇呮寮傚父鏈夊摢浜,涓哄暐瑕佸繀妫?鍏嶆寮傚父鏈夊摢浜?
    绛旓細鍦Java涓锛寮傚父鍒嗕负涓ょ锛氬繀妫寮傚父锛圕hecked Exception锛夊拰鍏嶆寮傚父锛圲nchecked Exception锛夈傚繀妫寮傚父鎸囬偅浜汮ava缂栬瘧鍣ㄥ湪缂栬瘧鏃舵湡蹇呴』澶勭悊鐨勫紓甯革紝鍖呮嫭IOException銆丼QLException銆丆lassNotFoundException绛夈傚厤妫寮傚父鎸囧湪杩愯鏃舵湡鍑虹幇鐨勫紓甯革紝涓嶉渶瑕佽繘琛屾崟鑾锋垨澹版槑锛屽寘鎷琋ullPointerException銆丄rrayIndexOutOfBounds...
  • 浠涔堟槸Java鐨勫紓甯
    绛旓細try{}catch{}finally{}try鍧椾腑鏀惧叆鍙兘浼氬嚭鐜板紓甯哥殑浠g爜锛宑atch鍧楄礋璐f崟鑾峰紓甯革紝finally鍧楄礋璐e鐞嗕竴浜涘繀椤鎵ц鐨勪唬鐮侊紝姣旇緝鍏抽棴娴佺瓑銆甯歌鐨java寮傚父鏈锛氱┖鎸囬拡寮傚父绫伙細NullPointerException 褰撳簲鐢ㄨ瘯鍥惧湪瑕佹眰浣跨敤瀵硅薄鐨勫湴鏂逛娇鐢ㄤ簡null鏃讹紝鎶涘嚭璇ュ紓甯搞傝濡傦細璋冪敤null瀵硅薄鐨勫疄渚嬫柟娉曘佽闂畁ull瀵硅薄鐨勫睘鎬с佽绠...
  • java鐨勫紓甯绫诲瀷鏈夊摢涓ょ
    绛旓細Throwable鍖呭惈浜嗛敊璇(Error)鍜屽紓甯(Excetion涓ょ被)Exception鍙堝寘鍚簡杩愯鏃跺紓甯(RuntimeException, 鍙堝彨闈炴鏌ュ紓甯)鍜岄潪杩愯鏃跺紓甯(鍙堝彨妫鏌ュ紓甯)(1) Error鏄▼搴忔棤娉曞鐞嗕簡, 濡傛灉OutOfMemoryError銆丱utOfMemoryError绛夌瓑, 杩欎簺寮傚父鍙戠敓鏃,java铏氭嫙鏈轰竴鑸細缁堟绾跨▼ .(2) 杩愯鏃跺紓甯搁兘鏄疪untimeException绫...
  • ...鍒嗗嚑绉嶇被鍨?鏈変粈涔堝尯鍒?鍐欏嚭鍑犱釜甯歌寮傚父銆
    绛旓細Java 涓鐨勫紓甯革紙Exception锛夊張绉颁负渚嬪锛屾槸涓涓湪绋嬪簭鎵ц鏈熼棿鍙戠敓鐨勪簨浠讹紝瀹冧腑鏂鍦ㄦ墽琛岀殑绋嬪簭鐨勬甯告寚浠ゆ祦銆備负浜嗚兘澶熷強鏃舵湁鏁堝湴澶勭悊绋嬪簭涓殑杩愯閿欒锛屽繀椤讳娇鐢ㄥ紓甯哥被銆傚紓甯镐富瑕佸垎涓轰互涓嬩袱绉嶅紓甯搞1銆杩愯鏃跺紓甯閮芥槸 RuntimeException 绫诲強鍏跺瓙绫诲紓甯革紝濡 NullPointerException銆両ndexOutOfBoundsException 绛...
  • 扩展阅读:java常见的五大异常 ... java运行的三个步骤 ... java的检查异常有哪些 ... java常见检查型异常 ... java异常处理一般几种 ... java人为抛出异常代码 ... java非运行时异常举例 ... java异常两大类 ... java常见的五种运行异常 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网