java中异常是什么,java常见的异常类型

  java中异常是什么,java常见的异常类型

  

  java异常有哪些

  我们在编写java程序的时候,总是会遇到各种各样的错误。以下是常见异常错误的总结。(推荐教程:java教程)

  1. java.lang.nullpointerexception

  大家一定经常遇到这种异常。对异常的解释是“程序遇到了空指针”。简单地说,它称为未初始化的对象或不存在的对象。这个错误经常出现在创建图片和调用数组的操作中,比如图片未初始化或者创建图片时路径错误。很多时候数组操作中的空指针是一些刚开始学编程的朋友常犯的错误,就是把数组的初始化和数组元素的初始化混淆了。数组的初始化是给数组分配需要的空间,初始化后的数组中的元素没有实例化,仍然是空的,所以需要初始化每个元素(如果调用的话)。

  2. java.lang.classnotfoundexception

  这个异常是很多原本在jb等开发环境下开发的程序员在wtk下编译包的常见问题。对异常的解释是“指定的类不存在”。这里只需要考虑类的名称和路径是否正确。如果包是在jb下制作的,通常默认添加包,所以切换到wtk后要注意添加包的路径。

  3. java.lang.arithmeticexception

  对这种异常的解释是‘数学运算异常’。比如程序中有除零之类的运算,就会出现这样的异常。对于这种异常,要仔细检查我们程序中涉及到数学运算的地方,公式是否有问题。

  4. java.lang.arrayindexoutofboundsexception

  相信很多朋友经常遇到这种异常。对异常的解释是“数组下标越界”。现在,大多数程序都在数组上运行。因此,在调用数组时,必须仔细检查所调用的下标是否超出了数组的范围。一般来说,在显示(即直接用常量作为下标)调用中不容易出现这样的错误,但在隐式(即用变量表示下标)调用中往往是错误的。然而在另一种情况下,程序中定义的数组长度是由一些特定的方法决定的,而不是事先声明的。此时,最好先检查数组的长度,以避免这种异常。

  5. java.lang.illegalargumentexception

  对这个异常的解释是“方法的参数错误”。j2me类库中的许多方法在某些情况下会导致这样的错误。例如,如果音量调整方法中的音量参数被写成负数,则会出现此异常。例如,如果g. setcolor (int red,int green,int blue)方法中有三个值,如果超过255个值,也会发生此异常。所以一旦发现这个异常,我们要做的就是快速检查方法。

  6. java.lang.illegalaccessexception

  对此例外的解释是“无访问权限”。当应用程序想要调用某个类,但当前方法没有访问该类的权限时,会发生此异常。当在程序中使用包时,请注意这个异常。

  还有很多其他的例外,我就不一一列举了。我想指出的是,一个合格的程序员需要对程序中的常见问题以及相应的解决方法有很好的了解,否则如果只是停留在编写程序而不去修改,会极大的影响自己的发展。所有异常的描述都可以在api中找到。

  算术异常类:Arithmetic exception

  NullPointerException类:NullPointerException

  类型转换异常:ClassCastException

  数组负下标异常:NegativeArrayException

  数组下标越界异常:ArrayIndexOutOfBoundsException

  违反安全原则的异常:SecturityException

  文件结尾异常:EOFException

  在文件中找不到异常:FileNotFoundException

  将字符串转换为数字时出现异常:NumberFormatException

  数据库操作异常:SQLException

  输出异常:IOException

  该方法未发现异常:NoSuchMethodException。

  java.lang.AbstractMethodError

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

  java.lang.AssertionError

  断言错误。用于指示断言的失败。

  Java . lang . class circularity error

  类循环依赖错误。初始化类时,如果检测到类之间的循环依赖关系,将引发此异常。

  java.lang.ClassFormatError

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

  java.lang .错误

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

  Java . lang . exceptioniniinitializererror

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

  java.lang.IllegalAccessError

  非法访问错误。当应用程序试图访问、修改类的字段或调用其方法,但违反了字段或方法的可见性声明时,将引发此异常。

  Java . lang . incompatilleclasschangeerror

  不兼容的类更改错误。当执行方法所依赖的类定义中发生不兼容的更改时,将引发此异常。一般来说,在没有重新编译整个应用程序,直接运行的情况下,修改应用程序中某些类的声明定义,很容易导致这个错误。

  java.lang.InstantiationError

  实例化错误。当应用程序试图通过Java的新操作符构造一个抽象类或接口时,就会抛出这个异常。

  java.lang.InternalError

  内部错误。用于指示Java虚拟机有内部错误。

  java.lang.LinkageError

  链接错误。错误及其所有子类表明一个类依赖于其他类。编译该类后,依赖类在没有重新编译所有类的情况下更改其类定义,从而导致错误。

  java.lang.NoClassDefFoundError

  找不到类定义错误。当Java虚拟机或类加载器试图实例化一个类,但找不到该类的定义时,会引发此错误。

  java.lang.NoSuchFieldError

  域中没有错误。当应用程序试图访问或修改某个类的域,但该类的定义中没有该域的定义时,将引发此错误。

  java.lang.NoSuchMethodError

  方法中没有错误。当应用程序试图调用某个类的方法,但该类的定义中没有该方法的定义时,会引发此错误。

  java.lang.OutOfMemoryError

  内存不足错误。当Java虚拟机的可用内存不足以分配给对象时,会引发此错误。

  java.lang.StackOverflowError

  堆栈溢出错误。当应用程序的递归调用级别太深,导致堆栈溢出时,会引发此错误。

  java.lang.ThreadDeath

  线程结束。当调用Thread类的stop方法来指示线程结束时,将引发此错误。

  Java . lang . unknown错误

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

  java.lang.UnsatisfiedLinkError

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

  Java . lang . unsupportedclassversionerror

  不支持的类版本是错误的。当Java虚拟机尝试从读取类文件,但发现当前Java虚拟机不支持该文件的主版本号和次版本号时,会引发此错误。

  java.lang.VerifyError

  验证错误。当验证程序在类文件中检测到内部不兼容或安全问题时,会引发此错误。

  java.lang.VirtualMachineError

  虚拟机错误。它用于指示虚拟机已损坏或继续操作所需的资源不足。

  java.lang.ArithmeticException

  算术条件异常。比如:整数除以零等。

  Java . lang . arrayindexoutofboundsexception

  数组越界异常。当数组的索引值为负或者大于或等于数组的大小时引发。

  java.lang.ArrayStoreException

  数组存储异常。当非数组声明类型对象存储在数组中时引发。

  java.lang.ClassCastException

  班级形状不正常。假设有A类和B类(A不是B的父类或子类),O是A的实例,那么当O被强制构造为B类的实例时就会抛出这个异常,这个异常通常被称为cast异常。

  Java . lang . classnotfoundexception

  未找到类异常。当应用程序试图基于字符串形式的类名构造一个类,但在遍历CLASSPAH后找不到具有相应名称的类文件时,就会抛出这个异常。

  Java . lang . clonenotsupportedexception

  不支持克隆异常。当Cloneable接口未实现或不支持clone方法时,调用其clone()方法会引发此异常。

  Java . lang . enumconstantnotpresentexception

  枚举常数没有例外。当应用程序试图按名称和枚举类型访问枚举对象,但枚举对象不包含常量时,将引发此异常。

  异常

  根异常。用于描述应用程序想要捕获的情况。

  Java . lang . illegalaccessexception

  非法访问异常。当应用程序试图创建类的实例、访问类的属性或通过反射调用类的方法,但此时无法访问类的定义、属性、方法或构造方法时,将引发此异常。

  Java . lang . illegalmonitorstateexception

  非法监控状态异常。当线程试图等待不属于它的对象(O)的监视器或通知其他线程等待对象(O)的监视器时,会引发此异常。

  Java . lang . illegalstateexception

  非法状态是不正常的。当Java环境和应用程序不处于方法的合法调用状态,但方法被调用时,会引发此异常。

  Java . lang . illegalthreadstateexception

  的非法线程状态异常。当县不处于方法的合法调用状态,但方法被调用时,将引发异常。

  Java . lang . indexoutofboundsexception

  索引超出界限异常。当访问序列的索引值小于0或大于或等于序列大小时,将引发此异常。

  Java . lang . instantiation exception

  实例化异常。当试图通过newInstance()方法创建某个类的实例,并且该类是抽象类或接口时,将引发此异常。

  Java . lang . interrupted异常

  异常中止。当一个线程等待、睡眠或长时间挂起,而其他线程通过Thread的中断方法终止该线程时,会引发此异常。以上就是java异常的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: