Java千百问_04异常处理(008)_java中常见的错误有哪些

点击进入_更多_Java千百问

java中常见的错误有哪些

想了解异常看这里:什么是java中的异常

常见的运行时异常看这里:常见的Java异常有哪些(运行时)

常见的非运行时异常看这里:常见的java异常有哪些(非运行时)

java中除了异常Exception之外,还有一大类错误,即ERROR,我们常见的ERROR如下:

1、java.lang.Error

错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。

原因:

  1. 对系统所访问外部资源,未执行关闭操作,导致外部资源大量浪费,最终可-能导致系统无法正常运行;
  2. 对系统所访问的外部资源关闭次数太多,外部系统无法正常处理;
  3. 系统访问的外部资源出现异常情况。

解决方案:

  1. 访问外部资源前,首先检查该资源(如数据库)是否可正常连接或操作。
  2. 访问外部资源时,如果进行了连接,一定进行关闭操作,并仅进行一次关闭操作。
  3. 尽量在同一操作中共享外部资源,以减少该操作对资源的消费,提高程序的执行效率。

2、java.lang.AbstractMethodError

抽象方法错误。当应用试图调用抽象方法时抛出。

3、java.lang.AssertionError

断言错。用来指示一个断言失败的情况。

4、java.lang.ClassCircularityError

类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。

5、java.lang.ClassFormatError

类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。

6、java.lang.ExceptionInInitializerError

初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。

7、java.lang.IllegalAccessError

违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。

8、java.lang.IncompatibleClassChangeError

不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。

9、java.lang.InstantiationError

实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.

10、java.lang.InternalError

内部错误。用于指示Java虚拟机发生了内部错误。

11、java.lang.LinkageError

链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。

12、java.lang.NoClassDefFoundError

未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。

13、java.lang.NoSuchFieldError

域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误。

14、java.lang.NoSuchMethodError

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

15、java.lang.OutOfMemoryError

内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。

16、java.lang.StackOverflowError

堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。

17、java.lang.ThreadDeath

线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。

18、java.lang.UnknownError

未知错误。用于指示Java虚拟机发生了未知严重错误的情况。

19、java.lang.UnsatisfiedLinkError

未满足的链接错误。当Java虚拟机未找到某个类的声明为native方法的本机语言定义时抛出。

20、java.lang.UnsupportedClassVersionError

不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java虚拟机支持的时候,抛出该错误。

21、java.lang.VerifyError

验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误。

22、java.lang.VirtualMachineError

虚拟机错误。用于指示虚拟机被破坏或者继续执行操作所需的资源不足的情况。

时间: 2024-10-16 00:15:05

Java千百问_04异常处理(008)_java中常见的错误有哪些的相关文章

Java千百问_04异常处理(007)_常见的java异常有哪些(非运行时)

点击进入_更多_Java千百问 1.常见的java运行时异常有哪些 了解非运行时异常看这里:什么是java中的异常 常见的运行时异常看这里:常见的运行时异常有哪些 我们所说的常见异常是jdk或者其他常用第三方jar中的异常,出现频次很高的异常.常见的非运行时异常(即检查异常,checked exception)包括: 操作数据库异常:SQLException 输入输出异常:IOException 文件未找到异常:FileNotFoundException 反射操作异常:ReflectiveOpe

Java技术_Java千百问(0038)_java中重载和覆盖有什么关系

点击进入_更多_Java千百问 1.什么是重载 java的重载,简单说,就是方法有同样的名称,但是参数不相同.这样的同名不同参数的方法之间,互相称之为重载方法. 需要注意的是: 1. 方法名相同. 2. 参数不同,这里是说对应位置的参数类型至少有一个不同,当然List和List都是List,算作相同. 3. 返回值可以不同,可以相同. 例子: "` public class Test{ public void a() { System.out.println("a()");

Java千百问_07JVM架构(008)_java垃圾回收机制是什么

点击进入_更多_Java千百问 1.如何判断垃圾对象 垃圾收集的第一步就是先需要算法来标记哪些是垃圾,然后再对垃圾进行处理.通常的编程语言都会用以下算法之一进行判断: 引用计数(ReferenceCounting)算法 这种方法比较简单直观,核心思路是,给每个对象添加一个被引用计数器,被引用时+1,引用失效-1,等于0时就表示该对象没有被引用,可以被回收. FlashPlayer/Python使用该算法,简单高效.但是,Java/C#并不采用该算法,因为该算法没有解决对象相互引用的问题,即:当两

Java千百问_05面向对象(008)_java中覆盖是什么

点击进入_很多其它_Java千百问 1.什么是覆盖 在java中,覆盖是针对继承才有的概念,某一个子类须要某些方法或属性,但又不想使用父类中的同名的方法或属性,就须要使用覆盖. 直白的来说,就是在子类中编写与父类同名.同參数.同返回值的方法,或同名.同类型的属性.子类对象调用该方法/属性时.运行的是子类的方法.而不会运行父类的方法(除非在方法第一行写super();会先运行父类方法.再继续运行子类代码. ) 了解类的构造函数看这里:类.对象究竟有什么秘密 了解很多其它继承看这里:java类的继承

Java千百问_02基本使用(015)_java如何通过汇编方式运行

点击进入_更多_Java千百问-基本使用 1.java如何通过汇编方式运行 java本身不能通过汇编方式运行.但是,我们可以通过某些插件,在运行中将java代码解释为汇编指令,让我们能够通过分析执行的汇编指令来查找一些问题,也可以帮助我们分析和理解JVM是如何解释和编译的(当然java本身的编译和运行和汇编无关). PrintAssembly是JVM的一个运行参数,它允许我们获取在控制台打印java代码翻译成的汇编指令.使用PrintAssembly需要一些插件的支持,这些并不是JVM直接提供的

Java千百问_01基本概念(002)_Java都有那些版本

点击进入_更多_Java千百问 1.Java都有那些版本 Java最初由sun公司出品,2009年被orcale公司(即甲骨文)收购,它的版本体系分为两个纬度,纵向和横向. 纵向的版本即为我们常说的Jdk版本,通过近20年的时间,从1996年正式发布1.0版本,发展到2014年的8.0版本. 横向的版本即为我们所说的Java体系,从Java 2.0开始有所区分. 2.什么是Java体系 Java SE(J2SE,Java2 Platform Standard Edition,标准版) Java

Java千百问_01基本概念(004)_Java都能做些什么

点击进入_更多_Java千百问 1.Java都能做些什么 在讨论Java能干什么之前,我们要说一下软件系统的体系结构. 你不知道Java是什么?请看这里:什么是Java 2.什么是纯C架构系统 完全脱离网络就可独立使用的软件系统(即客户端C,client),这类软件不受限于网络,只依赖于操作系统. 如:PC上的word.视频播放器等软件. 3.什么是C/S架构系统 拥有自己独立的一个或多个服务端系统(即服务端S,server),每个使用者拥有自己独立的客户端软件(即C,client),客户端与服

Java千百问_06数据结构(008)_null属于哪种数据类型

点击进入_更多_Java千百问 1.null属于哪种数据类型 首先,在java中,null本身不是对象,也不是Objcet的实例.那么他属于哪种数据类型呢? 了解数据类型看这里:java中数据类型是什么 java基本数据类型看这里:[java有哪8种基本数据类型3 具体看下面这个例子: if (null instanceof java.lang.Object) { System.out.println("null属于java.lang.Object类型"); } else { Syst

Java技术_Java千百问(0012)_java都有哪些关键字

点击进入_更多_Java千百问 java都有哪些关键字 首先我们来看看什么是关键字,关键字的含义. 1.java关键字是什么意思 关键字是电脑语言里事先定义的,有特别意义的特殊标识符,又叫保留字. Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等等,Java规定关键字不能用作自定义标识符(包括变量名.方法名.类名.包名和参数等等). 2.java都有哪些关键字 目前共有50个Java关键字,如下.其中,"const"和"goto&