精华内容
下载资源
问答
  • 作为初学者常犯的一些错误和总结,在开发时候可以作为文档进行查询,能帮助我们快速找到答案
  • java常见异常总结

    2018-11-29 09:13:30
    java常见异常,总结java常见异常解释,很全面,解释也很周到
  • 主要介绍了Java 常见异常(Runtime Exception )详细介绍并相关资料,大家在开发Java 应用软件的时候经常会遇到各种异常这里帮大家整理了一部分,并解释如何解决,需要的朋友可以参考下
  • java常见异常

    万次阅读 2018-08-14 14:15:25
    1. java.lang.nullpointerexception  这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建...

    1. java.lang.nullpointerexception
      这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)

      2. java.lang.classnotfoundexception
      这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。

      3. java.lang.arithmeticexception
      这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。

      4. java.lang.arrayindexoutofboundsexception
      这个异常相信很多朋友也经常遇到过,异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。

      5. java.lang.illegalargumentexception
      这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。

      6. java.lang.illegalaccessexception
      这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。

      其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部说明,在api里都可以查阅。

     

    算术异常类:ArithmeticExecption

    空指针异常类:NullPointerException

    类型强制转换异常:ClassCastException

    数组负下标异常:NegativeArrayException

    数组下标越界异常:ArrayIndexOutOfBoundsException

    违背安全原则异常:SecturityException

    文件已结束异常:EOFException

    文件未找到异常:FileNotFoundException

    字符串转换为数字异常:NumberFormatException


    操作数据库异常:SQLException


    输入输出异常:IOException


    方法未找到异常:NoSuchMethodException

    java.lang.AbstractMethodError

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

    java.lang.AssertionError

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

    java.lang.ClassCircularityError

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

    java.lang.ClassFormatError

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

    java.lang.Error

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

    java.lang.ExceptionInInitializerError

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

    java.lang.IllegalAccessError

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

    java.lang.IncompatibleClassChangeError

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

    java.lang.InstantiationError

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

    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.UnknownError

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

    java.lang.UnsatisfiedLinkError

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

    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的实例时抛出该异常。该异常经常被称为强制类型转换异常。

    java.lang.ClassNotFoundException

    找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。

    java.lang.CloneNotSupportedException

    不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。

    java.lang.EnumConstantNotPresentException

    枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。

    java.lang.Exception

    根异常。用以描述应用程序希望捕获的情况。

    java.lang.IllegalAccessException

    违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。

    java.lang.IllegalMonitorStateException

    违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。

    java.lang.IllegalStateException

    违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。

    java.lang.IllegalThreadStateException

    违法的线程状态异常。当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。

    java.lang.IndexOutOfBoundsException

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

    java.lang.InstantiationException

    实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。

    java.lang.InterruptedException

    被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。

    java.lang.NegativeArraySizeException

    数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。

    java.lang.NoSuchFieldException

    属性不存在异常。当访问某个类的不存在的属性时抛出该异常。

    java.lang.NoSuchMethodException

    方法不存在异常。当访问某个类的不存在的方法时抛出该异常。

    java.lang.NullPointerException

    空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。

    java.lang.NumberFormatException

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

    java.lang.RuntimeException

    运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类。

    java.lang.SecurityException

    安全异常。由安全管理器抛出,用于指示违反安全情况的异常。

    java.lang.StringIndexOutOfBoundsException

    字符串索引越界异常。当使用索引值访问某个字符串中的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。

    java.lang.TypeNotPresentException

    类型不存在异常。当应用试图以某个类型名称的字符串表达方式访问该类型,但是根据给定的名称又找不到该类型是抛出该异常。该异常与ClassNotFoundException的区别在于该异常是unchecked(不被检查)异常,而ClassNotFoundException是checked(被检查)异常。

    java.lang.UnsupportedOperationException

    不支持的方法异常。指明请求的方法不被支持情况的异常。

    异常
    javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)  

    可能原因
    action没有再struts-config.xml 中定义,或没有找到匹配的action,例如在JSP文件中使用 <html:form action="Login.do".将表单提交给Login.do处理,如果出现上述异常,请查看struts-config.xml中的定义部分,有时可能是打错了字符或者是某些不符合规则,可以使用strutsconsole工具来检查。
    -----------------------------------------------------------------------------------------------------------------
    异常
    org.apache.jasper.JasperException: Cannot retrieve definition for form bean null

    可能原因      
           
    这个异常是因为Struts根据struts-config.xml中的mapping没有找到action期望的form bean。大部分的情况可能是因为在form-bean中设置的name属性和action中设置的name属性不匹配所致。换句话说,action和form都应该各自有一个name属性,并且要精确匹配,包括大小写。这个错误当没有name属性和action关联时也会发生,如果没有在action中指定name属性,那么就没有name属性和action相关联。当然当action制作某些控制时,譬如根据参数值跳转到相应的jsp页面,而不是处理表单数据,这是就不用name属性,这也是action的使用方法之一。
    -----------------------------------------------------------------------------------------------------------------
    异常
    No action instance for path /xxxx could be created

    可能原因
    特别提示:因为有很多中情况会导致这个错误的发生,所以推荐大家调高你的web服务器的日志/调试级别,这样可以从更多的信息中看到潜在的、在试图创建action类时发生的错误,这个action类你已经在struts-config.xml中设置了关联(即添加了<action>标签)。

    在struts-config.xml中通过action标签的class属性指定的action类不能被找到有很多种原因,例如:定位编译后的.class文件失败。Failure to place compiled .class file for the action in the classpath (在web开发中,class的的位置在r WEB-INF/classes,所以你的action class必须要在这个目录下。例如你的action类位于WEB-INF/classes/action/Login.class,那么在struts-config.xml中设置action的属性type时就是action.Login).
    拼写错误,这个也时有发生,并且不易找到,特别注意第一个字母的大小写和包的名称。 
    -----------------------------------------------------------------------------------------------------------------
    异常
    javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN

    可能原因
    没有位form bean中的某个变量定义getter 方法

    这个错误主要发生在表单提交的FormBean中,用struts标记<html:text property=”username”>时,在FormBean中必须有一个getUsername()方法。注意字母“U”。
    -----------------------------------------------------------------------------------------------------------------
    异常
    java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm

    可能原因
    这个错误主要发生在在classpath中找不到相应的Java .class文件。如果这个错误发生在web应用程序的运行时,主要是因为指定的class文件不在web server的classpath中(/WEB-INF/classes 和 /WEB-INF/lib)。在上面的错误中,原因是找不到ActionForm类。
    -----------------------------------------------------------------------------------------------------------------
    异常
    javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.ActionForm: {1}

    可能原因
    Instantiating Struts-provided ActionForm class directly instead of instantiating a class derived off ActionForm. This mightoccur implicitly if you specify that a form-bean is this Struts ActionForm class rather than specifying a child of this classfor the form-bean.

    Not associating an ActionForm-descended class with an action can also lead to this error.
    -----------------------------------------------------------------------------------------------------------------
    异常
    javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection

    可能原因
    不是标识Struts actionServlet的<servlet>标记就是映射.do扩展名的<sevlet-mapping>标记或者两者都没有在web.xml中声明。

    在struts-config.xml中的打字或者拼写错误也可导致这个异常的发生。例如缺少一个标记的关闭符号/>。最好使用struts console工具检查一下。

    另外,load-on-startup必须在web.xml中声明,这要么是一个空标记,要么指定一个数值,这个数值用来表servlet运行的优先级,数值越大优先级越低。

    还有一个和使用load-on-startup有关的是使用Struts预编译JSP文件时也可能导致这个异常。
    -----------------------------------------------------------------------------------------------------------------
    异常
    java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223)

    可能原因
    在struts-config.xml中的forward元素缺少path属性。例如应该是如下形式:
    <forward name="userhome" path="/user/userhome.jsp"/>
    -----------------------------------------------------------------------------------------------------------------
    异常
    javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope


     

    Probable Causes
    试图在Struts的form标记外使用form的子元素。这常常发生在你在</html:form>后面使用Struts的html标记。另外要注意可能你不经意使用的无主体的标记,如<html:form … />,这样web 服务器解析时就当作一个无主体的标记,随后使用的所有<html>标记都被认为是在这个标记之外的,如又使用了<html:text property=”id”>还有就是在使用taglib引入HTML标记库时,你使用的prefix的值不是html。
    -----------------------------------------------------------------------------------------------------------------
    异常
    javax.servlet.jsp.JspException: Missing message for key xx.xx.xx

    Probable Causes
    这个key的值对没有在资源文件ApplicationResources.properties中定义。如果你使用eclipse时经常碰到这样的情况,当项目重新编译时,eclipse会自动将classes目录下的资源文件删除。

    资源文件ApplicationResources.properties 不在classpath中应将资源文件放到 WEB-INF/classes 目录下,当然要在struts-config.xml中定义)
    -----------------------------------------------------------------------------------------------------------------
    异常
    Cannot find message resources under key org.apache.struts.action.MESSAGE

    可能原因
    很显然,这个错误是发生在使用资源文件时,而Struts没有找到资源文件。

    Implicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifyingthe options in its body -- this assumes options are specified in ApplicationResources.properties file)

    XML parser issues -- too many, too few, incorrect/incompatible versions
    -----------------------------------------------------------------------------------------------------------------
    异常
    Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.

    可能原因
    混和使用Struts的html:form标记和标准的HTML标记不正确。

    使用的编码样式在本页中不支持。
    -----------------------------------------------------------------------------------------------------------------
    异常
    "Document contained no data" in Netscape

    No data rendered (completely empty) page in Microsoft Internet Explorer

    可能原因
    使用一个Action的派生类而没有实现perform()方法或execute()方法。在Struts1.0中实现的是perform()方法,在Struts1.1中实现的是execute()方法,但Struts1.1向后兼容perform()方法。但你使用Struts1.1创建一个Action的派生类,并且实现了execute()方法,而你在Struts1.0中运行的话,就会得到"Document contained nodata" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.”的错误信息。

    ---------------------------------------------------------------------------------------------------------------------------
    异常
    ServletException: BeanUtils.populate
    解决方案
    在用Struts上传文件时,遇到了javax.servlet.ServletException: BeanUtils.populate异常。
    我的ActionServlet并没有用到BeanUtils这些工具类。后来仔细检查代码发现是在jsp文件里的form忘了加enctype=&quot;multipart/form-data&quot; 了。所以写程序遇到错误或异常应该从多方面考虑问题存在的可能性,想到系统提示信息以外的东西。
    ----------------------------------------------------------------------------------------------------------------------------
    1. 定义Action后, 如果指定了name, 那么必须要定义一个与它同名的FormBean才能进行form映射.2. 如果定义Action后, 提交页面时出现 "No input attribute for mapping path..." 错误, 则需要在其input属性中定义转向的页面.3. 如果插入新的数据时出现 "Batch update row count wrong:..." 错误, 则说明XXX.hbm.xml中指定的key的类型为原始类型(int, long),因为这种类型会自动分配值, 而这个值往往会让系统认为已经存在该记录, 正确的方法是使用java.lang.Integer或java.lang.Long对象.4. 如果插入数据时出现 "argument type mismatch" 错误, 可能是你使用了Date等特殊对象, 因为struts不能自动从String型转换成Date型,所以, 你需要在Action中手动把String型转换成Date型.5. Hibernate中, Query的iterator()比list()方法快很多.6. 如果出现 "equal symbol expected" 错误, 说明你的strtus标签中包含另一个标签或者变量, 例如:
    <html:select property="test" οnchange="<%=test%>"/>
    或者
    <html:hidden property="test" value="<bean:write name="t" property="p"/>"/>
    这样的情况... 
    ---------------------------------------------------------------------------------------------------------------------------
    错误:Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update原因与解决:      因为Hibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示数据库名称)这样的属性,将该属性删除就可以了
    ---------------------------------------------------------------------------------------------------------------------------
    错误:org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)
    原因与解决:
    方法1 删除Set方的cascade
    方法2 解决关联关系后,再删除
    方法3 在many-to-one方增加cascade 但值不能是none
    最后一招:
    检查一下hashCode equals是否使用了id作为唯一标示的选项了;我用uuid.hex时是没有问题的;但是用了native,就不行了,怎么办?删除啊!
    ----------------------------------------------------------------------------------------------------------------------------
    问题:今天用Tomcat 5.5.12,发现原来很好用的系统不能用了,反复测试发现页面中不能包含 taglib,否则会出现以下提示:HTTP Status 500 -type Exception reportMessage description The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD "META-INF/tlds/struts-bean.tld" from JAR file"file:*****/WEB-INF/lib/struts.jar":原因:更新了工程用的lib文件夹下的jar,发布时也发布了servlet.jar和jsp-api.jar。解决:把jsp-api.jar删除就解决这个问题了。-----------------------------------------------------------------------------------------------------------------------------
    错误: java.lang.NullPointerException
    原因: 发现 dao 实例、 manage 实例等需要注入的东西没有被注入(俗称空指针异常)解决:这个时候,你应该查看日志文件;默认是应用服务器的 log 文件,比如 Tomcat 就是 [Tomcat 安装目录 ]/logs ;你会发现提示你:可能是:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sf' defined in ServletContextresource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xmlorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml……………………….Caused by: java.io.FileNotFoundException: src\hibernate.cfg.xml可能是:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined inServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not foundorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found然后你就知道原因是因为配置文件的解析出了错误,这个通过 Web 页面是看不出来的。更多的是持久化影射文件出的错误;导致了没有被解析;当然你需要的功能就无法使用了。
    ----------------------------------------------------------------------------------------------------------------------------
    错误:StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
    javax.servlet.jsp.JspException: Cannot retrieve mapping for action /settlementTypeManage
    或者:      type Status report      message Servlet action is not available      description The requested resource (Servlet action is not available) is not available.
    原因: 同 上
    ----------------------------------------------------------------------------------------------------------------------------
    错误StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exceptionjava.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei界面错误具体描述:
    org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei
          原因与解决:    <方案一>你的“html:”开头的标签没有放在一个<html:form>中       <方案二>重新启动你的应用服务器,自动就没有这个问题了

    展开全文
  • Java常见异常类型及原因分析

    千次阅读 2018-08-24 17:07:05
    Java常见异常类型及原因分析 0x1 NullPointerException异常 顾名思义,NullPointerException 是空指针异常。但是在 Java 中没有指针,怎么会有 空指针异常呢? 在 C++中,声明的指针需要指向一个实例(通过 new...

    Java常见异常类型及原因分析

    0x1 NullPointerException异常

    顾名思义,NullPointerException 是空指针异常。但是在 Java 中没有指针,怎么会有 空指针异常呢?

    在 C++中,声明的指针需要指向一个实例(通过 new 方法构造),这个指针可以理解为 地址。在 Java 中,虽然没有指针,但是有引用(通常称为对象引用,一般直接说对象),引 用也是要指向一个实例对象(通过 new 方法构造)的,从这种意义上说,Java 中的引用与 C++中的指针没有本质的区别,不同的是,处于安全的目的,在 Java 中不能对引用进行操 作,而在 C++中可以直接进行指针的运算,例如 book++等。

    所以这里的 NullPointerException 虽然不是真正的空指针异常,但本质上差不多,是 因为引用没有指向具体的实例,所以当访问这个引用的方法的时候就会产生这种异常。

    例如下面的代码:

    String str = "这是测试用的字符串!";
    System.out.println(str.length());
    String str1 = null;
    System.out.println(str1.length());
    //产生 NullPointerException异常

    那这种异常通常是如何产生的呢?比较多见的是下面的两种情况:

    a)把调用某个方法的返回值直接赋值给某个引用,然后调用这个引用的方法。在这种情况下,如果返回的值是null,必然会产生NullPointerException异常。
    例如:

     People p = null;
     p.setName("mubai");
     System.out.println(p.getName());

    分析:声明一个 People 对象,并打印出该对象的中的 Name 值。 说明:这个时候你的 p 就出现空指针异常,因为你只是声明了这个 People 类型的对象并没有创建对象,所以它的堆里面没有地址引用,切记你要用对象调用方法的时候一定要先创建对象。

    b)在方法体中调用参数的方法。
    这种情况下,如果调用方法的时候传递进来的值是 null,也要产生NullPointerException异常。要解决这种异常,只需要检查异常出现在第几行(通常在集成开发环境中会提示用户 错误发生在第几行),然后查看调用了哪个对象的方法,然后检查这个对象为什么没有赋值成功即可。

    要避免程序产生这种异常,比较好的解决方法是在调用某个对象的方法时候判断这个对 象是否可能为空,如果可能,则增加判断的语句,例如上面的代码可以写成:

    if (str!=null) {
            System.out.println(str.length());
    }else{
            System.out.println(0);
    }

    0x2 ClassCastException异常

    从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生ClassCastException 异常的原因进行分析,然后给出这种异常的解决方法。
    这种异常是如何产生的呢?举一个比较形象的例子。
    Animal 表示动物,Dog 表示狗,是动物的子类,Cat 表示猫,是动物的子类。看下面的代码:

    Animal a1 = new Dog();
    Animal a2 = new Cat();
    Dog d1 = (Dog)a1;
    Dog d2 = (Dog)a2;  //ClassCastException异常

    第 3 行代码和第 4 行代码基本相同,从字面意思看都是把动物(Animal)强制转换为狗 (dog)。但是第 4 行代码将产生 java.lang.ClassCastException。原因是你要把一个猫(a2 这只动物是猫)转换成狗不可以,而第 3 行中是把狗转换成狗,所以可以。

    从上面的例子看,java.lang.ClassCastException 是进行强制类型转换的时候产生的异常,强制类型转换的前提是父类引用指向的对象的类型是子类的时候才可以进行强制类型转 换,如果父类引用指向的对象的类型不是子类的时候将产生 java.lang.ClassCastException异常。

    遇到这样的异常的时候如何解决呢?如果你知道要访问的的对象的具体类型,直接转换成该类型即可。如果不能确定类型可以通过下面的两种方式进行处理(假设对象为 o):

    • 通过o.getClass().getName()得到具体的类型,可以通过输出语句输出这个类型,然后根据类型进行进行具体的处理。

    • 通过if(o.instanceof 类型)的语句来判断o的类型是什么。

    0x3 ArrayIndexOutOfBoundsException异常

    这是一个非常常见的异常,从名字上看是数组下标越界错误,解决方法就是查看为什么 下标越界。下面是一个错误示例:

    从这些提示信息中可以获取如下信息:
    1)错误发生在 93 行
    2)发生错误的时候,下标的值为 2
    接下来分析为什么下标值是 2 为什么不可以就可以解决了。

    0x4 UnsupportedClassVersionError

    错误提示如下:
    java.lang.UnsupportedClassVersonrrorr
    Bad version number in .class file

    错误原因:
    编译 Java 和运行 Java 所使用的 Java 的版本不一致。例如,编译的时候使用的 Java 版 本是 6,运行时候使用的 Java 版本是 5。
    解决方案:
    修改运行环境的 Java 版本或者修改编译环境的 Java 版本,让两者保持一致。

    0x5 NumberFormatException异常

    数字转换异常,在把一个表示数字的字符串转换成数字类型的时候可能会报这个异常,原因是作为参数的字符串不是由数字组成的。

    0x6 堆栈溢出和内存溢出

    在递归调用的时候可能会产生堆栈溢出的情况,因为在递归调用的时候需要把调用的状态保存起来,如果递归的深度达到一定程度,将产生堆栈溢出的异常。如果虚拟机的内存比较小,而程序对内存的要求比较高,则可能产生内存溢出错误。

    0x7 常见的异常类

    异常说明
    RuntimeExceptionJava.lang 包中多数异常的基类
    ArithmeticException算术错误,如除以 0
    IllegalArgumentException方法收到非法参数
    SecurityException试图违反安全性
    ClassNotFoundException不能加载请求的类
    AWTExceptionAWT 中的异常
    IOExceptionI/O 异常的根类
    FileNotFoundException不能找到文件
    EOFException文件结束
    IllegalAccessException对类的访问被拒绝
    NoSuchMethodException请求的方法不存在
    InterruptedException线程中断
    展开全文
  • Java常见异常大全.pdf

    2021-09-30 17:31:49
    Java常见异常大全.pdf
  • Java常见异常类【整理】

    千次阅读 2019-05-16 22:26:22
    常见异常类 《码出高效:Java开发手册》一书中提出的异常分类方法虽然在逻辑上更为合理,但此处主要结合API介绍常见的异常类,所以还是采用传统的异常体系结构。 此处API版本采用JavaSE1.8 API。 在线API地址...

    常见异常类

    《码出高效:Java开发手册》一书中提出的异常分类方法虽然在逻辑上更为合理,但此处主要结合API介绍常见的异常类,所以还是采用传统的异常体系结构。

    此处API版本采用JavaSE1.8 API。

    在线API地址https://docs.oracle.com/javase/8/docs/api/

    Error

    异常类

    所属包

    异常描述

    AnnotationFormatError

    java.lang.annotation

    注解格式错误。当注释分析器试图从类文件读取注释并确定注释出现异常时,抛出该异常。

    AssertionError

    java.lang

    断言错误。当某个断言(assert)失败时,抛出该异常。

    AWTError

    java.awt

    抽象窗口工具包错误。表示发生了严重的抽象窗口工具包(Absract Window Toolkit) 异常。

    CoderMalfunctionError

    java.nio.charset

    编码器故障错误。使用CharsetDecoder的decodeLoop方法或CharsetEncoder的encodeLoop方法时,可能出现的编码器/解码器异常。

    FactoryConfigurationError

    javax.xml.parsers

    解析工厂配置错误。当解析器工厂的配置存在问题时抛出。当无法找到或实例化系统属性中指定的解析器工厂的类时,通常会引发此错误。

    FactoryConfigurationError

    javax.xml.stream

    工厂配置错误。用于报告工厂配置错误的错误类。

    IOError

    java.io

    输入输出错误。当发生严重的I/O错误时抛出。

    LinkageError

    java.lang

    连接错误。LinkageError的子类表示一个类对另一个类具有某种依赖关系;但是,后一个类在编译前一个类之后发生了不兼容的变化。

    其子类包括

    - BootstrapMethodError,

    - ClassCircularityError,

    - ClassFormatError,

    - ExceptionInInitializerError,

    - IncompatibleClassChangeError,

    - NoClassDefFoundError,

    - UnsatisfiedLinkError,

    - VerifyError

    SchemaFactoryConfigurationError

    javax.xml.validation

    模式工厂配置错误。当模式工厂的配置存在问题时抛出。当无法找到或实例化系统属性中指定的模式工厂的类时,通常会引发此错误。

    ServiceConfigurationError

    java.util

    服务配置错误。加载服务提供程序时出错时抛出的错误。

    此错误将在以下情况下抛出:

    - provider-configuration文件的格式违反规范;

    - 读取provider-configuration文件时发生IOException;

    - 无法找到在provider-configuration中命名的具体提供类;

    - 具体的提供类不是服务提供类的子类;

    - 无法实例化具体的服务提供类;

    - 还会发生其他类型的错误。

    ThreadDeath

    java.lang

    线程死亡错误。当调用(已废弃的)thread .stop()方法时,ThreadDeath的实例被抛出到受害线程中。

    应用程序只有在必须在异步终止后进行清理时才应该捕获该类的实例。如果ThreadDeath被一个方法捕获,那么必须重新抛出它,这样线程才会死。

    TransformerFactoryConfigurationError

    javax.xml.transform

    转换工厂配置错误。当转换工厂的配置存在问题时抛出。当无法找到或实例化系统属性中指定的转换工厂的类时,通常会引发此错误。

    VirtualMachineError

    java.lang

    虚拟机错误。当Java虚拟机已损坏或已耗尽继续运行所需的资源时,抛出该异常

    RuntimeException

    异常类

    所属包

    异常描述

    AnnotationTypeMismatchException

    java.lang.annotation

    注解类型不匹配异常。若某个注释的类型在对该注释进行编译(或序列化)后发生了更改,而程序试图访问该注释的元素时,抛出此异常。

    ArithmeticException

    java.lang

    算数异常。当出现异常的运算条件时,抛出此异常。如整数除以0时。

    ArrayStoreException

    java.lang

    数组存储异常。试图将错误类型的对象存储到一个对象数组时抛出的异常。

    BufferOverflowException

    java.nio

    缓冲区溢出异常。当相关 put 操作达到目标缓冲区限制时,抛出此未受检异常。

    CannotRedoException

    javax.swing.undo

    无法重做异常。当 UndoableEdit 被告知使用redo() 但无法执行时抛出。

    CannotUndoException

    javax.swing.undo

    无法撤销异常。当 UndoableEdit 被告知使用redo() 但无法执行时抛出。

    ClassCastException

    java.lang

    类转型异常。当试图将对象强制转换为不是实例的子类时,抛出该异常。

    CMMException

    java.awt.color

    CMM异常。如果本机CMM返回一个错误,则抛出此异常。

    CompletionException

    java.util.concurrent

    完成时异常。在完成结果或任务过程中遇到错误或其他异常时引发异常。

    ConcurrentModificationException

    java.util

    并发修改异常。当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。

    直接已知子类包括:

    DirectoryIteratorException

    DataBindingException

    javax.xml.bind

    数据绑定异常。表示JAXB操作失败的异常。

    这个异常与JAXBException的不同之处在于,它是一个未检查异常,而JAXBException是一个检查异常。

    DateTimeException

    java.time

    日期时间异常。此异常用于在计算日期-时间时指示问题。

    此异常用于指示创建、查询和操作日期-时间对象方面的问题。

    直接已知子类包括:

    - DateTimeParseException,

    - UnsupportedTemporalTypeException,

    - ZoneRulesException

    DOMException

    org.w3c.dom

    文档对象模型异常。DOM操作只在“exceptional”情况下引发异常,即,当某个操作无法执行时(出于逻辑原因,因为数据丢失,或者因为实现变得不稳定)。一般来说,DOM方法在普通的处理情况下返回特定的错误值,例如使用NodeList时的越界错误。

    EmptyStackException

    java.util

    空栈异常。该异常由 Stack 类中的方法抛出,以表明堆栈为空。

    EnumConstantNotPresentException

    java.lang

    枚举常量不存在异常。当应用程序试图按名称访问枚举常量,且枚举类型不包含具有指定名称的常量时引发。用于反射性读取注释的API可以引发此异常。

    EventException

    org.w3c.dom.events

    事件异常。事件操作可以按照其方法描述中指定的方式抛出EventException。

    详情请参阅文档对象模型(DOM)第2级事件规范。

    FileSystemAlreadyExistsException

    java.nio.file

    文件系统已存在异常。当试图创建已存在的文件系统时引发运行时异常。

    FileSystemNotFoundException

    java.nio.file

    文件系统不存在异常。无法找到文件系统时引发的运行时异常。

    IllegalArgumentException

    java.lang

    非法参数异常。抛出的异常表明向方法传递了一个不合法或不正确的参数。

    直接已知子类包括:

    - IllegalChannelGroupException

    - IllegalCharsetNameException

    - IllegalFormatException

    - IllegalSelectorException

    - IllegalThreadStateException

    - InvalidKeyException

    - InvalidOpenTypeException

    - InvalidParameterException

    - InvalidPathException

    - KeyAlreadyExistsException

    - NumberFormatException

    - PatternSyntaxException

    - ProviderMismatchException

    - UnresolvedAddressException

    - UnsupportedAddressTypeException

    - UnsupportedCharsetException

    IllegalMonitorStateException

    java.lang

    非法监控状态异常。抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程

    IllegalPathStateException

    java.awt.geom

    非法路径状态异常。对于正在执行的特定操作而言,如果操作在处于非法状态的路径上执行,则抛出该异常。

    IllegalStateException

    java.lang

    非法状态异常。在非法或不适当的时间调用方法时产生信号,将抛出该异常。

    直接已知子类包括:

    - AcceptPendingException

    - AlreadyBoundException

    - AlreadyConnectedException

    - CancellationException

    - CancelledKeyException

    - ClosedDirectoryStreamException

    - ClosedFileSystemException

    - ClosedSelectorException

    - ClosedWatchServiceException

    - ConnectionPendingException

    - FormatterClosedException

    - IllegalBlockingModeException

    - IllegalComponentStateException

    - InvalidDnDOperationException

    - InvalidMarkException

    - NoConnectionPendingException

    - NonReadableChannelException

    - NonWritableChannelException

    - NotYetBoundException

    - NotYetConnectedException

    - OverlappingFileLockException

    - ReadPendingException

    - ShutdownChannelGroupException

    - WritePendingException

    IllformedLocaleException

    java.util

    不合语法的Locale异常。由Locale和Locale中的方法抛出。表示参数不符合BCP 47标记格式。

    ImagingOpException

    java.awt.image

    成像操作异常。如果某个 BufferedImageOp 或 RasterOp 过滤器方法无法处理图像,则抛出 ImagingOpException。

    IncompleteAnnotationException

    java.lang.annotation

    注解不完备异常。若某个注释在编译(或序列化)后将某个注释类型添加到其类型定义中,而程序试图该注释类型的元素时,抛出此异常。如果新元素有默认值,则不抛出此异常。

    IndexOutOfBoundsException

    java.lang

    索引越界异常。指示某索引(例如数组、字符串或向量的索引)超出范围时抛出。

    应用程序可以为这个类创建子类,以指示类似的异常。

    直接已知子类包括:

    - ArrayIndexOutOfBoundsException

    - StringIndexOutOfBoundsException

    JMRuntimeException

    javax.management

    Java管理扩展运行时异常。由 JMX 实现所发出的运行时异常。

    直接已知子类包括:

    - MonitorSettingException

    - RuntimeErrorException

    - RuntimeMBeanException

    - RuntimeOperationsException

    LSException

    org.w3c.dom.ls

    Load&Sava异常。如果停止处理,解析或写操作可能会抛出LSException。

    处理可能因带有严重的 DOMError.SEVERITY_FATAL_ERROR 或不可恢复的 DOMError.SEVERITY_ERROR 的 DOMError,或者如果 DOMErrorHandler.handleError() 返回 false 而停止。

    MalformedParameterizedTypeException

    java.lang.reflect

    错误的参数化类型异常。当反射方法遇到语义错误的参数化类型,而反射方法需要实例化该类型时,抛出该异常。

    MirroredTypesException

    javax.lang.model.type

    镜像类型异常。当应用程序试图访问每个对应于 TypeMirror 的 Class 对象的序列时,抛出此异常。

    MissingResourceException

    java.util

    缺失资源异常。缺少资源时抛出此异常。

    NegativeArraySizeException

    java.lang

    负数组长度异常。如果应用程序试图创建大小为负的数组,则抛出该异常。

    NoSuchElementException

    java.util

    无该元素异常。由 Enumeration 的 nextElement 方法抛出,表明枚举中没有更多的元素。

    NoSuchMechanismException

    javax.xml.crypto

    无该机制异常。当请求特定的XML机制,但该机制在环境中不可用时,将引发此异常。

    NoSuchMechanismException可以包含一个原因:另一个可抛出的原因导致这个NoSuchMechanismException被抛出。

    NullPointerException

    java.lang

    空指针异常。当应用程序试图在需要对象的情况下使用null时抛出。这些包括:

    - 调用空对象的实例方法

    - 访问或修改空对象的字段

    - 将 null 作为一个数组,并进行取长度、按索引访问元素等操作时

    - 将 null 作为 Throwable 值抛出

    应用程序应该抛出该类的实例,以指示null对象的其他非法使用。

    ProfileDataException

    java.awt.color

    Profile数据异常。当访问或处理 ICC_Profile 对象出现错误时,抛出此异常。

    ProviderException

    java.security

    Provider异常。用于 Provider 异常(例如误配置错误或不可恢复的内部错误)的运行时异常,Provider 可以为它创建子类以抛出特殊的、特定于 provider 的运行时错误。

    ProviderNotFoundException

    java.nio.file

    Provider不存在异常。当无法找到所需类型的Provider程序时引发运行时异常。

    RasterFormatException

    java.awt.image

    光栅格式异常。如果 Raster 中存在无效的布局信息,则抛出 RasterFormatException。

    RejectedExecutionException

    java.util.concurrent

    拒绝执行异常。当无法执行某个任务时,由 Executor 抛出的异常。

    SecurityException

    java.lang

    安全异常。由安全管理器抛出的异常,指示存在安全侵犯。

    直接已知子类包括:

    AccessControlException,

    RMISecurityException

    SystemException

    org.omg.CORBA

    系统异常。所有 CORBA 标准异常的根类。这些异常可以作为任何 CORBA 操作调用的结果抛出,还可以由许多标准 CORBA API 方法返回。标准异常包含次要代码 (minor code) 以提供更详细的说明,此外还包含完成状态。可以为此类创建子类,以生成标准 ORB 异常集合中的每一个异常。SystemException 扩展了 java.lang.RuntimeException,因此在映射自 IDL 接口的操作的 Java 方法的签名中无需声明任何 SystemException 异常。

    直接已知子类包括:

    - ACTIVITY_COMPLETED

    - ACTIVITY_REQUIRED

    - BAD_CONTEXT

    - BAD_INV_ORDER

    - BAD_OPERATION

    - BAD_PARAM

    - BAD_QOS

    - BAD_TYPECODE

    - CODESET_INCOMPATIBLE

    - COMM_FAILURE

    - DATA_CONVERSION

    - FREE_MEM

    - IMP_LIMIT

    - IndirectionException,

    - INITIALIZE

    - INTERNAL

    - INTF_REPOS

    - INV_FLAG

    - INV_IDENT,

    - INV_OBJREF

    - INV_POLICY

    - INVALID_ACTIVITY

    - INVALID_TRANSACTION

    - MARSHAL

    - NO_IMPLEMENT

    - NO_MEMORY

    - NO_PERMISSION

    - NO_RESOURCES

    - NO_RESPONSE

    - OBJ_ADAPTER

    - OBJECT_NOT_EXIST

    - PERSIST_STORE

    - REBIND

    - TIMEOUT

    - TRANSACTION_MODE

    - TRANSACTION_REQUIRED

    - TRANSACTION_ROLLEDBACK

    - TRANSACTION_UNAVAILABLE

    - TRANSIENT

    - UNKNOWN

    - UnknownException

    TypeConstraintException

    javax.xml.bind

    种类约束异常。此异常指示已检测到存在违反动态检查的类型约束的情况。

    TypeNotPresentException

    java.lang

    类型未定义异常。当应用程序试图使用表示类型名称的字符串对类型进行访问,但无法找到带有指定名称的类型定义时,抛出该异常。此异常与 ClassNotFoundException 不同,ClassNotFoundException 是一个经过检查的异常,而此异常是未经检查的。

    注意,当访问未定义的类型变量时,以及当加载类型(例如,类、接口或注释类型)时,可以使用此异常。

    UncheckedIOException

    java.io

    未受检IO异常。用未检查异常包装IOException。

    UndeclaredThrowableException

    java.lang.reflect

    未声明异常。如果代理实例的调用处理程序的 invoke 方法抛出一个经过检查的异常,且该异常不可分配给该方法(在代理实例上调用该方法,并将其指派到调用处理程序)的 throws 子句中声明的任何异常类,则由代理实例上的方法调用抛出此异常。

    UndeclaredThrowableException 实例包含由调用处理程序抛出的经过检查的未声明异常,而且可以使用 getUndeclaredThrowable() 方法获取。UndeclaredThrowableException 扩展了 RuntimeException,因此它是一个包装已检查异常的未经检查的异常。

    UnknownEntityException

    javax.lang.model

    未知实体异常。表示遇到了未知类型的实体。如果语言不断发展并引入新的结构,就会出现这种情况。此异常的子类可能由访问者抛出,以指示该访问者是为该语言的先前版本创建的。

    这些异常的公共超类允许单个catch块由代码统一地处理它们。

    直接已知子类包括:

    - UnknownAnnotationValueException

    - UnknownElementException

    - UnknownTypeException

    UnmodifiableSetException

    javax.print.attribute

    不可修改设置异常。当由于设置不可修改而无法执行请求的操作时,抛出该异常。

    UnsupportedOperationException

    java.lang

    不支持操作异常。当不支持请求的操作时,抛出该异常。

    此类是Java集合框架的成员。

    直接已知子类包括:

    - HeadlessException

    - ReadOnlyBufferException

    WebServiceException

    javax.xml.ws

    网络服务异常。WebServiceException 类是所有 JAX-WS API 运行时异常的基本异常类。

    直接已知子类包括:

    - ProtocolException

    WrongMethodTypeException

    java.lang.invoke

    错误方法类型异常。指示代码试图通过错误的方法类型调用方法句柄。与普通Java方法调用的字节码表示一样,方法句柄调用被强类型化为与调用站点关联的特定类型描述符。

    当组合了两个方法句柄,并且系统检测到它们的类型不能正确匹配时,也可能引发此异常。这相当于在方法句柄构造时(而不是在调用不匹配的方法句柄时)对类型不匹配进行早期评估

    非运行时异常

    异常类

    所属包

    异常描述

    AclNotFoundException

    java.security.acl

    访问控制列表不存在异常。如果对不存在的 ACL(访问控制列表)进行引用,则抛出此异常。

    ActivationException

    java.rmi.activation

    激活异常。激活接口所使用的一般异常。

    直接已知子类包括:

    - UnknownGroupException

    - UnknownObjectException

    AlreadyBoundException

    java.rmi

    已绑定异常。如果试图将注册表中的对象绑定到已具有相关绑定的名称上,则抛出 AlreadyBoundException。

    ApplicationException

    org.omg.CORBA.portable

    应用程序异常。此类用来报告 ORBs 和 stubs 之间的应用程序级异常。

    AWTException

    java.awt

    抽象窗口工具包异常。表示发生了抽象窗口工具包(Absract Window Toolkit)异常。

    BackingStoreException

    java.util.prefs

    辅助存储器异常。抛出该异常表明由于内部存储故障或者不能联系内部存储而无法完成 preferences 操作。

    BadAttributeValueExpException

    javax.management

    坏属性值异常。向构造的查询方法传递无效的 MBean 属性时,抛出此异常。在查询计算期间,由 JMX 在内部使用此异常。用户代码通常无法看到它。

    BadBinaryOpValueExpException

    javax.management

    向构造查询的方法传递无效的表达式时,抛出此异常。在查询计算期间,由 JMX 在内部使用此异常。用户代码通常无法看到它。

    BadLocationException

    javax.swing.text

    坏位置异常。此异常的目的是报告文档模型中的损坏位置(即试图引用一个不存在的位置)。

    BadStringOperationException

    javax.management

    坏字符串操作异常。向构造查询的方法传递无效的字符串操作时,抛出此异常。

    BrokenBarrierException

    java.util.concurrent

    断开屏障异常。当某个线程试图等待处于断开状态的barrier时,或者barrier进入断开状态而线程处于等待状态时,抛出该异常。

    CertificateException

    javax.security.cert

    证书异常。此异常指示各种证书问题之一。

    直接已知子类包括:

    - CertificateEncodingException

    - CertificateExpiredException

    - CertificateNotYetValidException

    - CertificateParsingException

    CloneNotSupportedException

    java.lang

    不支持克隆异常。当调用 Object 类中的 clone 方法复制对象,但该对象的类无法实现 Cloneable 接口时,抛出该异常。

    重写 clone 方法的应用程序也可能抛出此异常,指示不能或不应复制一个对象。

    DataFormatException

    java.util.zip

    数据格式异常。表示发生了数据格式错误。

    DatatypeConfigurationException

    javax.xml.datatype

    数据类型配置异常。指示严重的配置错误。

    DestroyFailedException

    javax.security.auth

    销毁失败异常。当 destroy 操作失败时,抛出此异常。

    此异常由实现 Destroyable 接口的证书在 destroy 方法失败时抛出。

    ExecutionException

    java.util.concurrent

    执行异常。当试图获取已通过抛出异常而中止的任务的结果时,抛出此异常。可以使用 Throwable.getCause() 方法来检查此异常。

    ExpandVetoException

    javax.swing.tree

    扩展阻止异常。用于阻止扩展/折叠发生的异常。有关更多信息和示例,请参阅 The Java Tutorial 中的 How to Write a Tree-Will-Expand Listener 一节。

    FontFormatException

    java.awt

    字体格式异常。此异常由 Font 类中的 createFont 方法抛出,以指示指定的字体是错误的。

    GeneralSecurityException

    java.security

    一般安全异常。eneralSecurityException 类是一个一般安全异常类,可以为所有从其扩展的与安全有关的异常类提供类型安全。

    直接已知子类包括:

    - BadPaddingException

    - CertificateException

    - CertPathBuilderException

    - CertPathValidatorException

    - CertStoreException

    - CRLException

    - DigestException

    - ExemptionMechanismException

    - IllegalBlockSizeException

    - InvalidAlgorithmParameterException

    - InvalidKeySpecException

    - InvalidParameterSpecException

    - KeyException

    - KeyStoreException

    - LoginException

    - NoSuchAlgorithmException

    - NoSuchPaddingException

    - NoSuchProviderException

    - ShortBufferException

    - SignatureException

    - UnrecoverableEntryException

    GSSException

    org.ietf.jgss

    通用安全服务异常。每当发生 GSS-API 错误(包括任何特定于机制的错误)时,都会抛出此异常。它包括主要和次要的 GSS-API 状态码。主要错误代码是指那些在此类的 GSS-API 级别定义的代码。次要错误代码是指特定于机制的错误代码,他们可以提供附加的信息。基础机制实现负责在抛出此异常时设置适当的次要状态码除向调用者提供数值错误代码外,此类还执行从其数值到文本表示形式的映射。

    IllegalClassFormatException

    java.lang.instrument

    非法类格式异常。当其输入参数无效时,由 ClassFileTransformer.transform 的实现抛出该异常。抛出此异常的原因或者由于初始类文件字节无效,或者由于以前应用的转换损坏了字节。

    InterruptedException

    java.lang

    当线程在活动之前或活动期间处于正在等待、休眠或占用状态且该线程被中断时,抛出该异常。有时候,一种方法可能希望测试当前线程是否已被中断,如果已被中断,则立即抛出此异常。

    IntrospectionException

    java.beans

    内省异常。在 Introspection 期间发生异常时抛出异常。

    典型的原因包括:无法将字符串类名称映射到 Class 对象、无法解析字符串方法名,或者指定对其用途而言具有错误类型签名的方法名称。

    InvalidApplicationException

    javax.management

    无效应用程序异常。程序试图应用下列任一内容时抛出此异常:对 MBean 应用子查询表达式或对错误类的 MBean 应用完全限定属性表达式。在查询计算期间由 JMX 在内部使用此异常。用户代码通常无法看到它。

    InvalidMidiDataException

    javax.sound.midi

    无效MIDI数据异常。一个 InvalidMidiDataException,指示遇到了不恰当的 MIDI 数据。这通常意味着,从 MIDI 规范角度来看,此数据输入本身或数据内部无效。一个示例是未定义的状态字节。然而,此异常可能只意味着此数据在使用它的环境中无效,或者接收此数据的对象无法解析或使用它。例如,尽管在 MIDI 规范中定义了 Type 2 MIDI 文件格式,但文件读取器可能无法解析 Type 2 MIDI 文件。

    InvalidPreferencesFormatException

    java.util.prefs

    无效Preferences格式异常。抛出此异常表明根据 Preferences 规范,输入内容不符合 preferences 集的正确 XML 文档类型,从而无法完成操作。

    InvalidTargetObjectTypeException

    javax.management.modelmbean

    无效目标对象类型异常。当指定了无效的目标对象类型时,抛出此异常。

    IOException

    java.io

    输入/输出异常。当发生某种 I/O 异常时,抛出此异常。此类是失败或中断的 I/O 操作生成的异常的通用类。

    直接已知子类包括:

    - ChangedCharSetException

    - CharacterCodingException

    - CharConversionException

    - ClosedChannelException

    - EOFException

    - FileLockInterruptionException

    - FileNotFoundException

    - FilerException

    - FileSystemException

    - HttpRetryException

    - IIOException,

    - InterruptedByTimeoutException

    - InterruptedIOException

    - InvalidPropertiesFormatException

    - JMXProviderException

    - JMXServerErrorException

    - MalformedURLException

    - ObjectStreamException

    - ProtocolException

    - RemoteException

    - SaslException

    - SocketException

    - SSLException

    - SyncFailedException

    - UnknownHostException

    - UnknownServiceException

    - UnsupportedDataTypeException

    - UnsupportedEncodingException

    - UserPrincipalNotFoundException

    - UTFDataFormatException

    - ZipException

    JAXBException

    javax.xml.bind

    JAXB异常。这是所有 JAXB 异常的根异常类。

    直接已知子类包括:

    - MarshalException

    - PropertyException

    - UnmarshalException

    - ValidationException

    JMException

    javax.management

    JME异常。由 JMX 实现所抛出的异常。它不包括运行时异常。

    直接已知子类包括:

    - MbeanException

    - OpenDataException

    - OperationsException

    - ReflectionException

    - RelationException

    KeySelectorException

    javax.xml.crypto

    密钥选择器异常。指示由 KeySelector 抛出的异常条件。 

    KeySelectorException 可以包含一个原因:即另一个导致抛出此 KeySelectorException 的 throwable。

    LambdaConversionException

    java.lang.invoke

    Lambda表达式转换异常。

    LastOwnerException

    java.security.acl

    最后拥有者异常。如果试图删除访问控制列表的最后一个所有者,则抛出此异常。

    LineUnavailableException

    javax.sound.sampled

    行不可用异常。LineUnavailableException 是指示某一行因为不可用而无法打开的异常。此情况通常在请求的行已由另一个应用程序使用时发生。

    MarshalException

    javax.xml.crypto

    编组异常。指示 XML 编组或解组过程中发生的异常条件。

    MarshalException 可以包含一个原因:另一个导致抛出此 MarshalException 的 throwable。

    MidiUnavailableException

    javax.sound.midi

    MIDI不可用异常。当请求的 MIDI 组件由于不可用而无法打开或创建时,抛出 MidiUnavailableException 异常。当设备由另一个应用程序使用时经常出现这种情况。更一般的情况是,有限数量的某种资源可用于某种用途,而所有这些资源都正在使用(可能都由此应用程序使用)时,会出现这种情况。

    MimeTypeParseException

    java.awt.datatransfer

    MimeType分析异常。对分析相关异常的 MimeType 进行封装的类。

    MimeTypeParseException

    javax.activation

    MimeType解析异常。封装与 MimeType 解析相关的异常的类。

    NamingException

    javax.naming

    命名异常。此异常是 Context 和 DirContext 接口中的操作抛出的所有异常的超类。失败的特性由子类的名称描述。此异常捕获指出操作失败处的信息,比如解析最后进行到的位置。

    - 已解析名称。已解析的名称部分。

    - 已解析对象。名称解析已进行到其所在位置的对象。

    - 剩余名称。尚未解析的名称部分。

    - 解释。解释名称解析失败原因的详细信息。

    - 根异常。导致抛出此命名异常的异常。

    所有这些字段都可以为 null 值。字段值为 null 意味着没有为该字段记录此类信息。

    NamingException 实例与并发多线程访问不同步。试图访问和修改单个 NamingException 实例的多个线程应该锁定对象。

    直接已知子类包括:

    - AttributeInUseException

    - AttributeModificationException

    - CannotProceedException

    - CommunicationException

    - ConfigurationException

    - ContextNotEmptyException

    - InsufficientResourcesException

    - InterruptedNamingException

    - InvalidAttributeIdentifierException

    - InvalidAttributesException

    - InvalidAttributeValueException

    - InvalidNameException

    - InvalidSearchControlsException

    - InvalidSearchFilterException

    - LimitExceededException

    - LinkException

    - NameAlreadyBoundException

    - NameNotFoundException

    - NamingSecurityException

    - NoInitialContextException

    - NoSuchAttributeException

    - NotContextException

    - OperationNotSupportedException

    - PartialResultException

    - ReferralException

    - SchemaViolationException

    - ServiceUnavailableException

    NoninvertibleTransformException

    java.awt.geom

    不可逆转换异常。oninvertibleTransformException 类表示在执行的操作要求 AffineTransform 对象可逆但 AffineTransform 处于不可逆状态时抛出的异常。

    NoSuchFieldException

    java.lang

    无此字段异常。类不包含指定名称的字段时产生的信号。

    NoSuchMethodException

    java.lang

    无此方法异常。无法找到某一特定方法时,抛出该异常。

    NotBoundException

    java.rmi

    无绑定异常。如果试图在注册表中查找或解绑没有相关绑定的名称,则抛出 NotBoundException。

    NotOwnerException

    java.security.acl

    无所有者异常。当只允许对象(如访问控制列表)的所有者修改对象,但是试图进行修改的 Principal 不是所有者时,抛出此异常。

    ParseException

    java.text

    解析异常。表示解析时出现意外错误。

    ParserConfigurationException

    javax.xml.parsers

    解析配置异常。指示一个严重的配置错误。

    PrinterException

    java.awt.print

    打印机异常。PrinterException 类及其子类用于指示打印系统中发生的异常情况。

    直接已知子类包括:

    - PrinterAbortException

    - PrinterIOException

    PrintException

    javax.print

    打印异常。类 PrintException 封装了与打印有关的错误状况,此状况在使用 PrintService 实例时会发生。此基类仅提供对该错误的字符串描述。如果适用,子类可提供更详细的信息。

    PrivilegedActionException

    java.security

    特权行为异常。doPrivileged(PrivilegedExceptionAction) 和 doPrivileged(PrivilegedExceptionAction, AccessControlContext context) 抛出此异常来指示执行的操作抛出了经过检查的异常。可以通过调用 getException 方法捕获操作抛出的异常。实际上,PrivilegedActionException 是特权操作抛出的异常的“包装器”。

    PropertyVetoException

    java.beans

    属性否决异常。当某一属性的提议更改表示一个不可接受的值时,将抛出 PropertyVetoException。

    ReflectiveOperationException

    java.lang

    反射操作异常。由核心反射中的反射操作引发的常见异常超类。

    直接已知子类包括:

    - ClassNotFoundException

    - IllegalAccessException

    - InstantiationException

    - InvocationTargetException

    - NoSuchFieldException

    - NoSuchMethodException

    RefreshFailedException

    javax.security.auth

    刷新失败异常。当 refresh 操作失败时,抛出此异常。

    此异常由实现 Refreshable 接口的证书在 refresh 方法失败时抛出。

    RemarshalException

    org.omg.CORBA.portable

    Remarshal异常。此类用来报告本地转发异常,以及发回 ORB 的对象转发 GIOP 信息。在这种情况下,重试前 ORB 必须重新编组请求。使用基于流模式的 Stub 应该捕获 RemarshalException,该异常可能从 ObjectImpl 的 _invoke() 方法抛出。一旦捕获到该异常,stub 应立即重新编组请求:调用 _request(),编组参数(如果有),然后调用 _invoke()。在 _invoke() 正常返回或引发 RemarshalException 以外的异常前,stub 应重复此过程。

    RuntimeException

    java.lang

    运行时异常。RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。

    可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。

    直接已知子类包括:

    - AnnotationTypeMismatchException

    - ArithmeticException

    - ArrayStoreException

    - BufferOverflowException

    - BufferUnderflowException

    - CannotRedoException

    - CannotUndoException

    - ClassCastException

    - CMMException

    - CompletionException

    - ConcurrentModificationException

    - DataBindingException

    - DateTimeException

    - DOMException

    - EmptyStackException

    - EnumConstantNotPresentException

    - EventException

    - FileSystemAlreadyExistsException

    - FileSystemNotFoundException

    - IllegalArgumentException

    - IllegalMonitorStateException

    - IllegalPathStateException

    - IllegalStateException

    - IllformedLocaleException

    - ImagingOpException

    - IncompleteAnnotationException

    - IndexOutOfBoundsException

    - JMRuntimeException

    - LSException

    - MalformedParameterizedTypeException

    - MalformedParametersException

    - MirroredTypesException

    - MissingResourceException

    - NegativeArraySizeException

    - NoSuchElementException

    - NoSuchMechanismException

    - NullPointerException

    - ProfileDataException

    - ProviderException

    - ProviderNotFoundException

    - RasterFormatException

    - RejectedExecutionException

    - SecurityException

    - SystemException

    - TypeConstraintException

    - TypeNotPresentException

    - UncheckedIOException

    - UndeclaredThrowableException

    - UnknownEntityException

    - UnmodifiableSetException

    - UnsupportedOperationException

    - WebServiceException

    - WrongMethodTypeException

    SAXException

    org.xml.sax

    XML简单API异常。封装一般的 SAX 错误或警告。

    直接已知子类包括:

    - SAXNotRecognizedException

    - SAXNotSupportedException

    - SAXParseException

    ScriptException

    javax.script

    脚本异常。脚本 API 的一般 Exception 类。由底层脚本实现抛出的经过检查的异常类型必须包装在 ScriptException 的实例中。该类具有存储行号和列号的成员,如果文件名信息可用,还具有存储文件名的成员。

    ServerNotActiveException

    java.rmi.server

    服务未激活异常。如果在服务于远程方法调用之外调用 getClientHost 方法,则 ServerNotActiveException 是在调用 RemoteServer.getClientHost 的过程中抛出的 Exception。

    SOAPException

    javax.xml.soap

    简易对象访问协议异常。当发生 SOAP 异常时,抛出此异常。SOAPException 对象可以包含给出异常原因的 String 或嵌入的 Throwable 对象,也可以同时包含两者。此类提供检索原因消息的方法和检索嵌入 Throwable 对象的方法。

    抛出 SOAPException 对象的通常原因是难以设置头、无法发送消息以及无法获取与提供者的连接之类的问题。嵌入 Throwable 对象的原因包括诸如输入/输出错误之类的问题或解析问题,如解析头时出现错误。

    SQLException

    java.sql

    结构化查询语言异常。提供关于数据库访问错误或其他错误信息的异常。

    每个 SQLException 都可提供以下多种消息:

    - 描述错误的字符串。此字符串用作 Java Exception 消息,可以通过方法 getMessage 获得。

    - "SQLstate" 字符串,该字符串遵守 XOPEN SQLstate 约定或 SQL:2003 约定。SQLState 字符串的值在适当的规范中描述。DatabaseMetaData 的方法 getSQLStateType 可用于确定驱动程序返回 XOPEN 类型还是 SQL:2003 类型。

    - 特定于每个供应商的整数错误代码。通常,这将是底层数据库返回的实际错误代码。

    - 到下一个 Exception 的链接。可以使用此链接提供其他错误信息。

    -因果关系,如果存在任何导致此 SQLException 的原因。

    直接已知子类包括:

    - BatchUpdateException

    - RowSetWarning

    - SerialException

    - SQLClientInfoException

    - SQLNonTransientException

    - SQLRecoverableException

    - SQLTransientException

    - SQLWarning

    - SyncFactoryException

    - SyncProviderException

    TimeoutException

    java.util.concurrent

    超时异常。阻塞操作超时时,抛出该异常。对于指定超时的阻塞操作来说,需要一种指示发生超时的方法。多数这样的操作可能返回一个值指示超时;当不可能或不需要返回超时值时,将声明并抛出 TimeoutException。

    TooManyListenersException

    java.util

    监听器过多异常。TooManyListenersException 异常用作 Java Event 模型的一部分来注释和实现多播 Event Source 的单播特例。

    通常在多播 "void addXyzEventListener" 事件侦听器注册模式的任何给定具体实现上都有 "throws TooManyListenersException" 子句,它在实现单播侦听器的特例时用于注释该接口,也就是说,有一个且只有一个侦听器可在特定的事件侦听器源上同时注册。

    TransformerException

    javax.xml.transform

    转换异常。此类指定了转换过程中发生的异常条件。

    直接已知子类包括:

    TransformerConfigurationException

    TransformException

    javax.xml.crypto.dsig

    转换异常。指示执行转换算法时出现异常的异常条件。

    TransformException 可以包含一个原因:另一个导致抛出此 TransformException 的 throwable。

    UnmodifiableClassException

    java.lang.instrument

    不可改变类异常。在无法修改指定类之一时,由 Instrumentation.redefineClasses 的实现抛出此异常。

    UnsupportedAudioFileException

    javax.sound.sampled

    不支持音频文件异常。UnsupportedAudioFileException 是指示因为文件没有包含可识别文件类型和格式的有效数据而致使操作失败的异常。

    UnsupportedCallbackException

    javax.security.auth.callback

    不支持回调异常。在 CallbackHandler 不能识别特定的 Callback 时发出的信号。

    UnsupportedFlavorException

    java.awt.datatransfer

    不支持Flavor异常。在此 flavor 中不支持所请求的数据的信号。

    UnsupportedLookAndFeelException

    javax.swing

    不支持外观异常。指示在用户系统上不存在请求的外观管理类的异常。

    URIReferenceException

    javax.xml.crypto

    统一资源标识符引用异常。指示取消引用 URIReference 时抛出的异常条件。

    URIReferenceException 可以包含一个 原因:另一个导致抛出此 URIReferenceException 的 throwable。

    URISyntaxException

    java.net

    统一资源标识符语法异常。抛出经过检查的指示字符串不能解析为 URI 引用的异常。

    UserException

    org.omg.CORBA

    用户异常。CORBA IDL 定义的用户异常的根类。所有 CORBA 用户异常都是经过检查的异常,这意味着它们需要在方法签名中被声明。

    直接已知子类包括:

    - AdapterAlreadyExists

    - AdapterInactive

    - AdapterNonExistent

    - AlreadyBound

    - BadKind

    - Bounds

    - Bounds

    - CannotProceed

    - DuplicateName

    - FormatMismatch

    - ForwardRequest

    - ForwardRequest

    - InconsistentTypeCode

    - InconsistentTypeCode

    - Invalid

    - InvalidAddress

    - InvalidName

    - InvalidName

    - InvalidName

    - InvalidPolicy

    - InvalidSeq

    - InvalidSlot

    - InvalidTypeForEncoding

    - InvalidValue

    - InvalidValue

    - NoContext

    - NoServant

    - NotEmpty

    - NotFound

    - ObjectAlreadyActive

    - ObjectNotActive

    - PolicyError

    - ServantAlreadyActive

    - ServantNotActive

    - TypeMismatch

    - TypeMismatch

    - TypeMismatch

    - UnknownEncoding

    - UnknownUserException

    - WrongAdapter

    - WrongPolicy

    - WrongTransaction

    XAException

    javax.transaction.xa

    XA异常。资源管理器 (RM) 抛出 XAException,以通知事务管理器涉及的事务遇到错误。

    XMLParseException

    javax.management.modelmbean

    XML解析异常。当将某个 XML 格式的字符串解析为 ModelMBean 对象,或从 ModelMBean 对象创建 XML 格式的字符串时,抛出此异常。 它还用于来自可能被使用的 XML 解析器的包装器异常。

    XMLSignatureException

    javax.xml.crypto.dsig

    XML签名异常。指示生成或验证 XML 签名过程中发生的异常条件。

    XMLSignatureException 可以包含一个原因:另一个导致抛出此 XMLSignatureException 的 throwable。

    XMLStreamException

    javax.xml.stream

    XML流异常。用于不可预料处理错误的基本异常。此异常类用于报告格式良好的错误以及不可预料的处理条件。

    XPathException

    javax.xml.xpath

    XML路径语言异常。XPathException 表示通用 XPath 异常。

    直接已知子类包括:

    - XpathExpressionException

    - XPathFactoryConfigurationException

    以上内容是笔者结合API,简单整理的Java常见异常类,挂一漏万,如有遗漏,欢迎大家指正。

    转载请注明出处。

     

    展开全文
  • Java常见异常

    2014-07-30 13:47:44
    Java开发中常见异常信息以及解决办法
  • JAVA常见异常解析,面试经常问到问题,初学java必读
  • Java常见异常和错误.pdf
  • Java常见异常.pdf

    2021-09-30 17:31:46
    Java常见异常.pdf
  • Java常见异常汇总.pdf

    2021-10-08 15:45:12
    Java常见异常汇总.pdf
  • Java 常见异常类型及其原因分析

    千次阅读 2019-05-27 21:37:58
    常见几种的异常有:NullpointerException异常;classCastException异常; ArrayIndexOutOfBoundsException异常;UnsupportedClassVersionErrorc错误; NumberFormatException异常; NullpointerExcep...

    开发工具与关键技术:Java
    作者:吴永旗
    撰写时间:2019年5月22日

    常见几种的异常有:NullpointerException异常;classCastException异常; ArrayIndexOutOfBoundsException异常;UnsupportedClassVersionErrorc错误; NumberFormatException异常;

    1. NullpointerExceptiony异常
      顾名思义,NumberFormatException是空指针异常,在java中虽然不是真正的空针异常,但本质上来说差不多了,是引用没有指向具体的实例,所以当访问这个引用的方法的时候就会就会产生这种异常。
      例如如下代码:
      String str=“这是一条字符串”;
      System.out.println(str.length());
      这段代码是没有问题,如果修改成下面的代码:
      String str=“这是一条字符串”;
      System.out.println(str.length());
      就会产生NullpointerExceptiony异常了
      在这里插入图片描述这种异常通常是如何产生呢?比较常见的两种情况:
      a)把调用某个方法的返回值直接赋值给某个引用,然后调用这个引用的方法。这种情况下,如果返回的值是null,必然产生NullpointerExceptiony异常
      例如:
      public static void main(String[] args) {
      User p=null;
      p.setUsername(“李三”);
      System.out.println(p.getUsername());
      }
      分析:声明一个User对象,并打印出该对象的username值
      说明:这个时候你的p就出现空指针异常,因为你只声明了这个user类型的对象,并没有创建对象,所以他的堆里没有地址引用,所以切忌你要用对象调用方法的时候一定要创建对象。
      b)方法体中调用参数的方法。
      这种情况下,如果调用方法的时候传递进来的值是null,也要产生NullpointerExceptiony异常。需要解决这个异常,只需要检查异常出现在第几行,然后查看调用了那个对象的方法,然后检查这个对象为什么没有赋值成功即可。
      要避免程序产生这种异常,比较好的解决方法是在调用某个对象的方法时候判断这个对象
      是否可能为空,如果可能,则增加判断语句,例如:
      if (str !=null) {
      System.out.println(str.length());
      }else{
      System.out.println(0);
      }
    2. ClassCastException异常
      从字面上看,是类型转换错误,通常进行强制类型转换时候出现错误,下面进行ClassCastException异常的原因进行分析,然后给出这种异常的解决方法。
      这种异常是如何产生的呢?据一个简单例子。
      Animal表示动物,Dog表示狗,是动物的子类,Cat表是猫,是动物的子类,看下面代码:
      Animal a1=new Dog();
      Animal a2=new Cat();
      Dog d1=(Dog)a1;
      Dog d2=(Dog)a2
      第3行代码和第四行代码基本相同从字面意思看都是把动物强制转换为狗,
      但是第四行代码产生java.lang.ClasssCastException异常。原因你想把猫转换为狗,那是不可能的,而第三行代码把狗转换为狗当然可以。

    从上面例子看,java.lang.ClasssCastException, 是强制类型转换时候出现异常,强制转换类型的前提是父类引用指向的对象的类型是子类的时候才可以进行强制类型转换,如果父类引用指向的对象的类型不是子类的时候就会产生java.lang.ClasssCastException异常。

    遇到这样的时候如何解决呢?
    如果你知道要访问的对象具体类型,直接转换类型即可,如果不能确认类型可以通过下面两种方式(假设对象为a)
     通过a.getClass().getName()得到具体类型,可以通过语句输出这个类型,然后根据类型进行处理。
     通过if(a instanceofl类型)的语句a的类型是什么
    3. ArrayIndexOutOfBoundsException异常
    这是一个非常常见的异常,从名字看是数值下标越界错误,解决方法就是查看为什么下标越界。下面是一个错误示例:
    Exception in thread “main” java.lang. ArrayIndexOutOfBoundsException:2
    at test4.State.nextStates(State.java:93)
    at test4.State.main(State.java:478)
    1) 错误发生在93行
    2) 发生错误的时候,下标值为2
    接下来想分析下标值为什么是2就可以解决了
    4. UnsupportedClassVersionErrorc错误
    错误提如下:
    Java.lang. UnsupportedClassVersionErrorc:Bad version number in.class file
    错误原因:编译java和java所使用的java的版本不一致;
    解决方法:修改运行的java版本或者修改编译的java版本,就可以了
    5. NumberFormatException异常
    数字转换异常,在把一个表示数字的字符串转换成数字类型的时候可能报这个异常
    原因是作为参数的字符串不是由数字组成。
    6. 常见的异常类

    异常 描述

    RuntimeExcePtion java.lang包中多异常的基类
    ArithmeticException 算术错误
    IllegalArgumetException 方法收到非法参数
    SecuriyException 试图违反安全性
    ClassNotFoundException 不能加载请求的类
    AWTExcetion AWT中异常
    IOExcetion I/O异常
    FileNotFoundExcePtion 不能找到文件
    EoFception 文件结束
    IllegalAccessException 对类的访问被拒绝
    NoSuchMethodException 请求方法不存在
    InterruptedException

    展开全文
  • Java常见异常原因以及解决方案

    千次阅读 2017-04-20 18:31:06
    Java常见异常原因以及解决方案一、ConcurrentModificationException(转)单线程 异常原因 在使用迭代器Iterator进行遍历时,进行了remove操作。(其他增删操作也有可能引发该异常) 以List为例: List<string> ...
  • Java常见异常汇总[归类].pdf
  • Java常见异常大全[定义].pdf
  • Java常见异常类型及原因分析(下).pdf
  • Java常见异常总结

    千次阅读 2018-06-04 14:47:23
    1. java.lang.NullPointerException(空指针异常) 调用了未经初始化的对象或者是不存在的对象经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针...
  • Java常见异常和错误[参照].pdf
  • Java常见异常和错误[定义].pdf
  • Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Java常见异常 本讲大纲 1 Java常见异常 支持网站 Java常见异常 Thank you 还有什么疑问可以到提出 也可以发送邮件到 mingrisoft@ Logo Logo Logo L
  • Java常见异常和解决办法

    千次阅读 2016-05-17 09:59:53
    1、java.lang.ArithmeticException 算术运算异常,因为除数为0,所以引发了算数异常 2、java.lang.StringIndexOutOfBoundsException: String index out of range: -1 这是截取字符串substring()产生的下标越界异常。...
  • java常见异常以及处理

    2011-01-30 22:30:24
    介绍java编程过程中常见异常以及处理。
  • 1.运行时异常: ArrayIndexOutOfBoundsException(数组越界异常) ArithmeticException(算数异常) ClassCastException(类型转换异常) NullPointException(空指针)2.编译时异常:...
  • Java 常见异常种类

    万次阅读 2018-05-21 21:56:48
    Java Exception:1、Error 2、Runtime Exception 运行时异常3、Exception 4、throw 用户自定义异常异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。...
  • Java常见异常类型及原因分析(上).pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 273,025
精华内容 109,210
关键字:

java常见异常

java 订阅