JAVA通用异常列表

JAVA通用异常列表
JAVA通用异常列表

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

https://www.360docs.net/doc/8d18186058.html,ng.classnotfoundexception

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

https://www.360docs.net/doc/8d18186058.html,ng.arithmeticexception

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

https://www.360docs.net/doc/8d18186058.html,ng.arrayindexoutofboundsexception

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

https://www.360docs.net/doc/8d18186058.html,ng.illegalargumentexception

这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如

g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。

https://www.360docs.net/doc/8d18186058.html,ng.illegalaccessexception

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

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

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

https://www.360docs.net/doc/8d18186058.html,ng.AssertionError

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

https://www.360docs.net/doc/8d18186058.html,ng.ClassCircularityError

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

https://www.360docs.net/doc/8d18186058.html,ng.ClassFormatError

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

https://www.360docs.net/doc/8d18186058.html,ng.Error

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

https://www.360docs.net/doc/8d18186058.html,ng.ExceptionInInitializerError

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

https://www.360docs.net/doc/8d18186058.html,ng.IllegalAccessError

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

https://www.360docs.net/doc/8d18186058.html,ng.IncompatibleClassChangeError

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

https://www.360docs.net/doc/8d18186058.html,ng.InstantiationError

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

https://www.360docs.net/doc/8d18186058.html,ng.InternalError

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

https://www.360docs.net/doc/8d18186058.html,ng.LinkageError

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

https://www.360docs.net/doc/8d18186058.html,ng.NoClassDefFoundError

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

https://www.360docs.net/doc/8d18186058.html,ng.NoSuchFieldError

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

https://www.360docs.net/doc/8d18186058.html,ng.NoSuchMethodError

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

https://www.360docs.net/doc/8d18186058.html,ng.OutOfMemoryError

内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。https://www.360docs.net/doc/8d18186058.html,ng.StackOverflowError

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

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

https://www.360docs.net/doc/8d18186058.html,ng.UnknownError

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

https://www.360docs.net/doc/8d18186058.html,ng.UnsatisfiedLinkError

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

https://www.360docs.net/doc/8d18186058.html,ng.UnsupportedClassVersionError

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

https://www.360docs.net/doc/8d18186058.html,ng.VerifyError

验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误。https://www.360docs.net/doc/8d18186058.html,ng.VirtualMachineError

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

https://www.360docs.net/doc/8d18186058.html,ng.ArithmeticException

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

https://www.360docs.net/doc/8d18186058.html,ng.ArrayIndexOutOfBoundsException

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

https://www.360docs.net/doc/8d18186058.html,ng.ArrayStoreException

数组存储异常。当向数组中存放非数组声明类型对象时抛出。

https://www.360docs.net/doc/8d18186058.html,ng.ClassCastException

类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O 构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。

https://www.360docs.net/doc/8d18186058.html,ng.ClassNotFoundException

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

https://www.360docs.net/doc/8d18186058.html,ng.CloneNotSupportedException

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

https://www.360docs.net/doc/8d18186058.html,ng.EnumConstantNotPresentException

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

https://www.360docs.net/doc/8d18186058.html,ng.Exception

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

https://www.360docs.net/doc/8d18186058.html,ng.IllegalAccessException

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

https://www.360docs.net/doc/8d18186058.html,ng.IllegalMonitorStateException

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

https://www.360docs.net/doc/8d18186058.html,ng.IllegalStateException

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

https://www.360docs.net/doc/8d18186058.html,ng.IllegalThreadStateException

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

https://www.360docs.net/doc/8d18186058.html,ng.IndexOutOfBoundsException

索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。https://www.360docs.net/doc/8d18186058.html,ng.InstantiationException

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

https://www.360docs.net/doc/8d18186058.html,ng.InterruptedException

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

https://www.360docs.net/doc/8d18186058.html,ng.NegativeArraySizeException

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

https://www.360docs.net/doc/8d18186058.html,ng.NoSuchFieldException

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

https://www.360docs.net/doc/8d18186058.html,ng.NoSuchMethodException

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

https://www.360docs.net/doc/8d18186058.html,ng.NullPointerException

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

https://www.360docs.net/doc/8d18186058.html,ng.NumberFormatException

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

https://www.360docs.net/doc/8d18186058.html,ng.RuntimeException

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

https://www.360docs.net/doc/8d18186058.html,ng.SecurityException

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

https://www.360docs.net/doc/8d18186058.html,ng.StringIndexOutOfBoundsException

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

https://www.360docs.net/doc/8d18186058.html,ng.TypeNotPresentException

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

https://www.360docs.net/doc/8d18186058.html,ng.UnsupportedOperationException

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

Java中常见错误和异常解决方法(打印)

https://www.360docs.net/doc/8d18186058.html,ng.NullPointerException 原因是:有空指针,有地址没赋值 2.Exception in thread "main" https://www.360docs.net/doc/8d18186058.html,ng.ArithmeticException: / by zero 原因是除数是0 3.ArrayIndexOutOfBoundsException 原因是:数组越界 https://www.360docs.net/doc/8d18186058.html,ng.NumberFormatException 原因是:数字格式化有问题 5.Unhandled exception type Exception 原因是:没有进行异常处理 6.进行国际化操作的时候遇到这样的错误:Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name Message, locale zh_CN 答:因为在命令提示符中,是没有错误的 解决方法是:在myeclipse中,会出现这个错误 java国际化之Can't find bundle for base name 1.初步学习 最近在学习ResourseBundle时遇到了“Can't find bundle for base name ”这个错误搞了很 久才解决了。原因就是类路径问题要将属性文件放在类路径中!百度里很多都是教程但没有涉及到解决方法!2.中文显示: 测试文件 java 代码 package com.lht.ResourseBundleStudy; import java.util.ResourceBundle; public class ResourseBundleDemo { public static void main(String[] args) { ResourceBundle resource = ResourceBundle.getBundle("test"); System.out.print(resource.getString("msg0") + "!"); System.out.println(resource.getString("msg1") + "!"); } } test.properties msg0="Hello World" msg1="da jia hao" 开始自己测试的时候:将属性文件放在bin/下也试过也不行无赖中就在google中搜索了一 下终于在sun的java论坛

Java常见异常和错误

Java常见异常和错误 1、在某一路径下执行编译好的class文件出错。 异常如下: E:\liwy>java Test98 Exception in thread "main" https://www.360docs.net/doc/8d18186058.html,ng.NoClassDefFoundError: Test98 如果出现了以上错误提示,常见问题有如下两种:1 大小写写错了,2 路径不正确。 2、数组错误,访问不存在的数组,数组超出绑定,代码如下: public class ArrayDemo { public static void main(String args[]){ int array[] = null; //声明数组 array = new int[3]; //为数组开辟空间,大小为3 for(int i=0;i

Java中常见异常类型及分析

Java常见异常类型及原因分析 这里介绍几种常见的异常并对原因进行分析,包括: ●NullPointException异常; ● ClassCastException异常; ● ArrayIndexOutOfBoundsException异常; ●UnsupportedClassVersionError错误; ●NumberFormatExceptio异常 ●堆栈溢出和内存溢出。 1 NullPointException异常 顾名思义,NullPointerException是空指针异常。但是在Java中没有指针,怎么会有空指针异常呢? 在C++中,声明的指针需要指向一个实例(通过new方法构造),这个指针可以理解为地址。 在Java中,虽然没有指针,但是有引用(通常称为对象引用,一般直接说对象),引用也是要指向一个实例对象(通过new方法构造)的,从这种意义上说,Java中的引用与C++中的指针没有本质的区别,不同的是,处于安全的目的,在Java中不能对引用进行操作,而在C++中可以直接进行指针的运算,例如book++等。 所以这里的NullPointerException虽然不是真正的空指针异常,但本质上差不多,是因为引用没有指向具体的实例,所以当访问这个引用的方法的时候就会产生这种异常。例如下面的代码: String str = "这是一个测试用的字符串!"; System.out.println(str.length()); 这段代码没有问题,但是如果改成下面的代码: String str ; System.out.println(str.length()); 就会产生NullPointerException异常了,当然一般人不会犯这样低级的错误。 那这种异常通常是如何产生的呢?比较多见的是下面的两种情况: 1)把调用某个方法的返回值直接赋值给某个引用,然后调用这个引用的方法。在这种情况下,如果返回的值是null,必然会产生NullPointerException异常。例如: String userName=request.getParameter("userName"); if(userName.length()==0) ...... else ...... 如果request.getParameter("userName")的结果为null,则这里就会产生这种异常。 2)在方法体中调用参数的方法。这种情况下,如果调用方法的时候传递进来的值是null,也要产生NullPointerException异常。 要解决这种异常,只需要检查异常出现在第几行(通常在集成开发环境中会提示用户错误发生在第几行),然后查看调用了哪个对象的方法,然后检查这个对象为什么没有赋值成

常见异常列表(精)

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberFormatException 操作数据库异常:SQLException 输入输出异常:IOException 方法未找到异常:NoSuchMethodException https://www.360docs.net/doc/8d18186058.html,ng.AbstractMethodError 抽象方法错误。当应用试图调用抽象方法时抛出。 https://www.360docs.net/doc/8d18186058.html,ng.AssertionError 断言错。用来指示一个断言失败的情况。 https://www.360docs.net/doc/8d18186058.html,ng.ClassCircularityError 类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。 https://www.360docs.net/doc/8d18186058.html,ng.ClassFormatError 类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。 https://www.360docs.net/doc/8d18186058.html,ng.Error 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应

被应用程序捕获的反常情况。 https://www.360docs.net/doc/8d18186058.html,ng.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。 https://www.360docs.net/doc/8d18186058.html,ng.IllegalAccessError 违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。 https://www.360docs.net/doc/8d18186058.html,ng.IncompatibleClassChangeError 不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。 https://www.360docs.net/doc/8d18186058.html,ng.InstantiationError 实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常. https://www.360docs.net/doc/8d18186058.html,ng.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。 https://www.360docs.net/doc/8d18186058.html,ng.LinkageError 链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。 https://www.360docs.net/doc/8d18186058.html,ng.NoClassDefFoundError 未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。 https://www.360docs.net/doc/8d18186058.html,ng.NoSuchFieldError 域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误。 https://www.360docs.net/doc/8d18186058.html,ng.NoSuchMethodError

JAVA中运行时异常

总结了一下JAVA中常见的几种RuntimeException,大约有如下几种: 1.NullPointerException -空指针引用异常 2.ClassCastException -类型强制转换异常。 3.IllegalArgumentException -传递非法参数异常。 4.ArithmeticException -算术运算异常 5.ArrayStoreException -向数组中存放与声明类型不兼容对象异常 6.IndexOutOfBoundsException -下标越界异常 7.NegativeArraySizeException -创建一个大小为负数的数组错误异常 8.NumberFormatException -数字格式异常9.SecurityException -安全异常 10.UnsupportedOperationException -不支持的操作异常 如下:RuntimeException是开发中最容易遇到的,下面列举一下常见的RuntimeException:1、NullPointerException:见的最多了,其实很简单,一般都是在null对象上调用方法了。 String s=null; booleaneq=s.equals(""); // NullPointerException 这里你看的非常明白了,为什么一到程序中就晕呢? public intgetNumber(String str){ if(str.equals("A")) return 1; else if(str.equals("B")) return 2; } 这个方法就有可能抛出NullPointerException,我建议你主动抛出异常,因为代码一多,你可能又晕了。

JAVA常见编译错误信息及说明

Java编译错误信息及说明 1、java:33:不是语句 解释:程序中出现了没有任何意义的字符(串),可能是无意中打出了没有任何意义的字符; 2、java:34:需要';' 解释:某条语句没有以分号结束; 3、java:36:缺少返回语句 解释:带返回值的函数缺少return语句; 4、java:33:不兼容的类型 解释:运算符两边的数据类型不一致或者不能做隐式转换; 5、java:36:无法访问的语句 解释:此语句永远不可能被执行,可能是此语句之前存在类似于while(true)的语句,导致此语句永远不可能被执行; 6、java:34:非法的表达式开始 解释:有不符合语法规范的表达式出现; 7、java:34:找不到符号 解释:使用了没有定义或没有引入的变量; 8、java:33:非法字符:\65307 解释:在中文输入状态下输入了一些标点符号; 9、java:18:不可转换的类型 解释:运算符两边的数据类型不一致或者不能做隐式转换; 10、java:19:"else"不带有"if" 解释:编译器找到else语句但是没有找到与之对应的if语句,可能是由于大括号没有成对出现;

11、java:12:可能损失精度 解释:把高精确度类型的数据赋值给低精确度类型的变量; 12、java:17:需要')' 解释:括号没有成对出现; 13、java:8:可能尚未初始化变量s 解释:局部变量s没有赋初值; 14、java:7:不可比较的类型:int和Boolean 解释:运算符两边操作数的数据类型不符合运算符的使用规范; 15、java:6:已在isLeap(int)中定义year 解释:变量year被重复定义; 16、java:21:字符字面值的行结尾不合法 解释:程序语句的结尾不是java规定的结束符号,而是其他的符号; 17、java:9:需要<标识符> 解释:可能是由于用户指定了数据类型,但未指定该类型的变量名; 18、java:8:无法从静态上下文中引用非静态变量this 解释:在静态方法中使用了非静态变量this; 19、java:12:在switch或loop外部中断 解释:在非循环语句或非switch语句中使用了中断循环功能的语句break; 20、java:21:对于结果类型为void的方法,无法返回值 解释:空返回值方法中出现了return语句; 21、java:12:需要数组,但找到int 解释:在应该出现数组的地方没有找到数组类型的变量,而是找到int类型的变量; 22、java:13:无法将Node中的setData(int)应用于()

java的常见问题及解决方法

1."https://www.360docs.net/doc/8d18186058.html,mons.collections.SequencedHashMap"'s signer information does not match signer information of other classes in the same package 这是由于struts提供的commons-beanutils.jar和hibernate提供的commons-collections.jar冲突成的, 可以从spring提供的lib中找到这个两个jar https://www.360docs.net/doc/8d18186058.html,ng.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.IdentNode 用hql 时,忘了给表名加别名,如select p from Position,应该是select p from Position p 3.The Server didn 't send back a proper XML response 用FCKEditor时 原因:解析不了xml文件 解决方法: 情况一:web.xml的配置是否正确,具体查看《FCKEditor使用指南.pdf》,还有fckeditor自带的几个jar 包 情况二:加入serializer.jar,xalan.jar 情况三:把项目下的fckeditor包删了,重新加入一遍 https://www.360docs.net/doc/8d18186058.html,.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)] SWTError:没有更多的处理[未知Mozilla的路径 (MOZILLA_FIVE_HOME未设置)] 环境:linux下运行swt程序(我出现此问题是,在linux下嵌套浏览器) 原因:firefox版本不一致 解决:重装一个firefox,并设置相关变量 5.Exception in thread "main" org.eclipse.swt.SWTError: No more handles [Could not detect registered XULRunner to use] 环境:用XULRunner 在java application中嵌套浏览器 原因:没有注册XULRunner 解决:window下环境中,在程序中加入,如(第二个参数是下载解压后的存放路径): static{ System.setProperty("org.eclipse.swt.browser.XULRunnerPath", "C:\\xulrunner"); } 6.Exception in thread "main" https://www.360docs.net/doc/8d18186058.html,ng.UnsatisfiedLinkError: no swt-win32-3536 or swt-win32 in swt.library.path, java.library.path or the jar file

java测试基本异常

Java中测试基本异常 1、第一个JAVA例程:hello world 执行时的问题:problems Executing Hello 如果你看到下面的错误提示: 'java' is not recognized as an internal or external command, ... or java: Command not found. 那么你或许没有安装java或者在环境变量中并没有设置path路径java\bin目录。 请检查你的java安装以及环境变量的正确设置。 如果你看到: Exception in thread "main" https://www.360docs.net/doc/8d18186058.html,ng.NoClassDefFoundError: hello (wrong name: Hello) ... 那么你很有可能是因为没有注意大小写或是把名称中的字母打错了。如: java hello 键入正确的命令重新运行即可。 如果你看到: Exception in thread "main" https://www.360docs.net/doc/8d18186058.html,ng.NoClassDefFoundError: Hello /class 那么你需要考虑是否去掉名字中的.class部分。 2、分析出现https://www.360docs.net/doc/8d18186058.html,ng.NoClassDefFoundError异常的具体情况 这个问题在上面调试第一个例程出现过,但是如果我们输入的名称是正确的,仍然提示这样的问题时怎么办呢? 装了JDK1.4.0版,而且JAVA_HOME,PATH和CLASSPATH都设置好了。如下 JAVA_HOME=/home/jdk CLASSPATH=$JAVA_HOME/jre/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/:$JAVA_ HOME/lib PATH=$PATH:$JAVA_HOME/bin 用JAVAC命令生成了hello.class,当使用java hello时,仍然提示: Exception in thread "main" https://www.360docs.net/doc/8d18186058.html,ng.NoClassDefFoundError:XXX(wrong name: XXX) 解决提示: (1)、Add (current directory) to your classpath或类定义前面加public (2)、path环境变量中设置的路径中是否有另一个java.exe文件,默认执行的是这个目录下的java.exe,虽然版本与JDK下的java.exe一致,但是在此目录下执行就会出错。 方法: 安装了JDK的情况下,应该删除winnt下的java.exe,确保默认调用的java.exe是位于jdk 中bin目录下的java.exe。 (3)、假如你使用了packet 那么检查你在编译了没有将指定package包在你文件中的java文件。 3、通常异常捕获处理: JAVA中几个基本异常简单的描述一下: ArithmeticException 当出现异常算术条件时产生 NullPointerException 当应用程序企图使用需要的对象处为空时产生 ArrayIndexOutOfBoundsException 数组下标越界时产生

java常见错误集锦

java常见错误以及可能原因集锦 0、需要标识符 a) 不在函数内 1、非法表达式开始 b) 可能:丢失括号 . 2. no data found a) 可能:setInt(1,100)中,没有100这个值 3. 找不到符号 a) 可能:没导入包 4. 指定了无效URL a) 可能:数据库名或IP错误,即连接出错 5. 类路径没有找到 a) 可能: ClassNotFoundException: oracle.jdbc.driver.OracleDriver b) 原因: 一般是指包名写错,或者没有import包,或者没有在类路径中找到jar文件 c) 解决: 没有加载Oracle驱动jar,在.bash_profile中把ojdbc14.jar加进来 6. 空指针异常 a) 可能: 数据源错误比如数据库名或IP错误 7. 不能执行查询 a) 可能: 数据库中表的问题,比如列名不存在 8. invalid identity a) 可能: 列名出错 9. 若在数据库中创建了两个sequence ,运行时出现异常可能是先后执行了多次select 语句,导致与原有的序列号产生冲突 10. 表名或列名不存在 a) 可能:表不存在或者没有插入数据到表中 11. 不支持的类,类的版本错误 a) 可能:没有导入jdk5.0,或者编译器仍为1.4 12. MappingNotFoundException a) Maybe: In the Eclipse Not refersh , or not exist in the dirctory

13. HibernateException: /hibernate.cfg.xml not found a) Maybe1: hibernate.cfg.xml not in the root directory b) Maybe2: Could not parse configuration . c) resolve: database not connect or use another database 14. ConstraintViolationException a) Maybe: used a not true database 15. 驱动没有找到或者 JDBC Driver not found 可能:连接数据库的驱动jar包不存在或者版本不一致,比如将旧的版本换成新的会造成该类错误 16. 空指针异常, https://www.360docs.net/doc/8d18186058.html,ng.NullPointerException a) 可能1:数据库连接出错,比如在hibernate.cfg.xml中的数据错误会导致异常。 17. 数据插入异常,GenericJDBCException: could not insert a) 可能1:没有建立表或者表中没有任何数据 b) 可能2:插入数据后没有执行提交语句:commit 18. LazyInitializationException 或者延迟加载异常 a) 可能1:没有在查询语句中加fetch 19. IdentifierGenerationException a) 可能1:高位表没有初始化(比如hi_value中没有记录) 20. could not initialize a collection: [hibernate.entity.Role.modules#32768] Syntax error: Encountered "-" at line 1, column 132. a) 错误原因:红色字部分中“-”为非法字符,替换为module_role 21. could not insert collection rows: [hibernate.entity.Module.roles#1] 在Module.hbm.xml文件的如下配置中加入inverse=”true” 22.在部署Struts时,出现如下错误信息: HTTP Status 404 - Servlet action is not available type Status report message Servlet action is not available description The requested resource (Servlet action is not available) is not available. 问题原因: 1.、web.xml文件中未配置ActionServlet。 2、struts-config.xml文件未配置你要访问的Action。 3、你的jsp文件form标记中action属性的路径名称错误。 4、非以上三种情况。

java中常见的NullPointerException异常

java中常见的NullPointerException异常 下面列出了我们学习java时常出现的NullPointerException异常,以及它的解决办法 1,空指针错误https://www.360docs.net/doc/8d18186058.html,ng.NullPointerException 使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便不能通过编译,因此使用基本的JAVA数据类 型(double,float,boolean,char,int,long)一般不会引起空指针异常。由此可见,空指针异常主要跟与对象的操作相关。 下面先列出了可能发生空指针异常的几种情况及相应解决方案: 不管对象是否为空就直接开始使用。 (JSP)代码段1:out.println(request.getParameter("username")); 描述:代码段1的功能十分简单,就是输出用户输入的表域"username"的值。 说明:看上去,上面的语句找不出什么语法错误,而且在大多数情况下也遇不到什么问题。但是,如果某个用户在输入数据时并没有提供表单域"username"的值,或通过某种途径绕过表单直接输入时,此时request.getParameter("username")的值为空(不是空字符串,是空对象null。),out对象的println方法是无法直接对空对象操作,因此代

码段1所在的JSP页面将会抛出"https://www.360docs.net/doc/8d18186058.html,ng.NullPointerException"异常。即使对象可能为空时,也调用https://www.360docs.net/doc/8d18186058.html,ng.Object或Object对象本身的一些方法如toString(), equals(Object obj)等操作。 (JSP)代码段2:String userName = request.getParameter("username"); If (userName.equals("root")) {....} 描述:代码段2的功能是检测用户提供的用户名,如果是用户名称为"root"的用户时,就执行一些特别的操作。 说明:在代码段2中,如果有用户没有提供表单域"username"的值时,字符串对象userName为null值,不能够将一个null的对象与另一个对象直接比较,同样,代码段2所在的JSP页面就会抛出 (https://www.360docs.net/doc/8d18186058.html,ng.NullPointerException)空指针错误。 (JSP)代码段3:String userName = session.getAttribute("https://www.360docs.net/doc/8d18186058.html,ername").toString(); 描述:代码段3的功能是将session中https://www.360docs.net/doc/8d18186058.html,ername的值取出,并将该值赋给字符串对象userName。说明:在一般情况下,如果在用户已经进行某个会话,则不会出现什么问题;但是,如果此时应用服务器重新启动,而用户还没有重新登录,(也可能是用户关闭浏览器,但是仍打开原来的页面。)那么,此时该session的值就会失效,同时

JAVA开发中的常见异常

JAVA开发中的常见异常 1. https://www.360docs.net/doc/8d18186058.html,ng.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话) 2. https://www.360docs.net/doc/8d18186058.html,ng.classnotfoundexception 这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。 3. https://www.360docs.net/doc/8d18186058.html,ng.arithmeticexception 这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。 4. https://www.360docs.net/doc/8d18186058.html,ng.arrayindexoutofboundsexception 这个异常相信很多朋友也经常遇到过,异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。 5. https://www.360docs.net/doc/8d18186058.html,ng.illegalargumentexception 这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int

java常见异常处理方案

JAVA常见异常 1. https://www.360docs.net/doc/8d18186058.html,ng.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针 ",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话) 2. https://www.360docs.net/doc/8d18186058.html,ng.classnotfoundexception 这个异常是很多原本在jb等开发环境中开发的程序员,把jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。 3. https://www.360docs.net/doc/8d18186058.html,ng.arithmeticexception 这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。 4. https://www.360docs.net/doc/8d18186058.html,ng.arrayindexoutofboundsexception 这个异常相信很多朋友也经常遇到过,异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。 5. https://www.360docs.net/doc/8d18186058.html,ng.illegalargumentexception 这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。 6. https://www.360docs.net/doc/8d18186058.html,ng.illegalaccessexception 这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。 其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程

JAVA中常见异常类总结

1)、NullPointerException(值为空):见的最多了,其实很简单,一般都是在null对象上调用方法了。 String s=null; boolean eq=s.equals("");//NullPointerException 这里你看的非常明白了,为什么一到程序中就晕呢? public int getNumber(String str){ if(str.equals("A"))return1; else if(str.equals("B"))return2; } 这个方法就有可能抛出NullPointerException,我建议你主动抛出异常,因为代码一多,你可能又晕了。 public int getNumber(String str){ if(str==null) {throw new NullPointerException("参数不能为空");} //你是否觉得明白多了if(str.equals("A"))return1; else if(str.equals("B"))return2; } 2)、NumberFormatException:继承IllegalArgumentException,字符串转换为数字时出现。比如int i=Integer.parseInt("ab3"); 3)、ArrayIndexOutOfBoundsException:数组越界。比如int[]a=new int[3];int b=a[3];

4)、StringIndexOutOfBoundsException:字符串越界。比如String s="hello";char c=s.chatAt(6); 5)、ClassCastException:类型转换错误。比如Object obj=new Object(); String s=(String)obj; 6)、UnsupportedOperationException:该操作不被支持。如果我们希望不支持这个方法,可以抛出这个异常。 既然不支持还要这个干吗?有可能子类中不想支持父类中有的方法,可以直接抛出这个异常。 7)、ArithmeticException:算术错误,典型的就是0作为除数的时候。 8)、IllegalArgumentException:非法参数,在把字符串转换成数字的时候经常出现的一个异常,我们可以在自己的程序中好好利用这个异常。

java基础异常Exception代码讲解总结

Java中的Exception 1异常相关概述 1.1 什么是异常 ?异常就是Java程序在运行过程中出现的错误。 ?前面接触过的空指针,数组越界,类型转换错误异常等 1.2 Throwable ?Throwable 类是Java 语言中所有错误或异常的超类。 ?只有当对象是此类(或其子类之一)的实例时,才能通过JVM 或者throw 语句抛出。 1.3异常的继承体系 1.3 JVM默认是如何处理异常的? ?jvm有一个默认的异常处理机制,就将该异常的名称、异常的信息、异常出现的位置打印在了控制台上,同时程序停止运行。

1.4 Java处理异常的两种方式 ?Java虚拟机处理 ?自己处理 1.5 为什么会有异常 因为你不知道未来会怎么样,需要做个准备(写代码也是,你需要对一些未知的东西做下处理),比如你去旅游,不知道会下雨还是出大太阳,你需要准备雨伞和帽子.如果下雨,我有雨伞可用,如果出大太阳,可以用帽子,也有可能天气刚刚好,雨伞和帽子都用不着,这叫白带。 1.6 回顾几个常见异常 2 try-catch 自己处理异常的两种方试

?try…catch…finally ?throws 2.1 try-catch异常处理方式 2.2 try-catch-catch 多个catch处理方式

2.3 try-catch-catch 多个异常-另一种写法 2.4 多个异常处理的一个注意事项 ?catch中父类的Exception只能放在最后面 ?catch一个原则,先由子类处理异常,子类不能处理异常,再由父类处理try { //1.有可能出现数组越界异常 int[] arr = {1,2,3}; System.out.println(arr[1]); //2.算术异常 int a = 10 / 2; //3.空指针异常 int[] arr1 = null; //NullPointerException np; System.out.println(arr1[0]); }catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组越界异常"); } catch (ArithmeticException e) { System.out.println("算术异常"); } catch (Exception e) { System.out.println("其它异常"); }

Java三种常见异常及解决

异常跟普通的警告等有一定的区别。当应用程序发生异常时,会中断正在执行的程序的正常指令流。也就是说,发生异常后面的代码将得不到正确的执行。甚至还会触发数据库的回退操作。 在Java的常见异常中,异常包括预定义异常与自定义异常。这两种异常的类型互为补充。作为一个合格的程序开发人员,要善于在应用程序中使用异常。这可以提高应用程序的交互性。同时,也是保证应用程序正常运行的前提。故异常的处理对于开发一个优秀的应用程序来说非常的重要。为此笔者认为程序开发人员应该对Java应用程序的常见异常有一个深入的了解。只有在了解这些常见异常的情况下,才能够做好自定义异常的处理。 一、Java常见异常的类型与原因。 对于Java应用程序的常见异常,笔者认为程序开发人员要从两个方面去了解。一是要知道有哪些常见的Java应用程序异常,二是需要知道哪些原因可能会造成这个异常。这不仅需要程序管理人员在日常工作中要注意积累,在必要的情况下还需要去从其它渠道收集资料。笔者对此就进行一个分析,希望能够对各位程序开发人员有一定的帮助。 1、 SQLException:操作数据库异常类。 现在的Java应用程序大部分都是依赖于数据库运行的。当Java应用程序与数据库进行沟通时如果产生了错误,就会触发这个类。同时会将数据库的错误信息通过这个类显示给用户。也就是说,这个操作数据库异常类是数据库与用户之间异常信息传递的桥梁。如现在用户往系统中插入数据,而在数据库中规定某个字段必须唯一。当用户插入数据的时候,如果这个字段的值跟现有的纪录重复了,违反了数据库的唯一性约束,此时数据库就会跑出一个异常信息。这个信息一般用户可能看不到,因为其发生在数据库层面的。此时这个操作数据库异常类就会捕捉到数据库的这个异常信息,并将这个异常信息传递到前台。如此的话,前台用户就可以根据这个异常信息来分析发生错误的原因。这就是这个操作数据库异常类的主要用途。在Java应用程序中,所有数据库操作发生异常时,都会触发这一个类。所有此时Java 应用程序本身的提示信息往往过于笼统,只是说与数据库交互出现错误,没有多大的参考价值。此时反而是数据库的提示信息更加有使用价值。 2、 ClassCastException:数据类型转换异常。 在Java应用程序中,有时候需要对数据类型进行转换。这个转换包括显示的转换与隐式的转换。不过无论怎么转换,都必须要符合一个前提的条件,即数据类型的兼容性。如果在数据转换的过程中,违反了这个原则,那么就会触发数据类型转换异常。如现在在应用程序中,开发人员需要将一个字符型的日期数据转换为数据库所能够接受的日期型数据,此时只需要在前台应用程序中进行控制,一般不会有问题。但是,如果前台应用程序缺乏相关的控制,如用户在输入日期的时候只输入月、日信息,而没有年份的信息。此时应用程序在进行数据类型转换的时候,就会出现异常。根据笔者的经验,数据类型转换异常在应用程序开发中使一个出现的比较多的异常,也是一个比较低级的异常。因为大部分情况下,都可以在应用程序窗口中对数据类型进行一些强制的控制。即在数据类型进行转换之前,就保证数据类型的兼容性。如此的话,就不容易造成数据类型的转换异常。如在只允许数值类型的字段中,可以设置不允许用户输入数值以外的字符。虽然说有了异常处理机制,可以保证应用程序不会被错误的运行。但是在实际开发中,还是要尽可能多的预见错误发生的原因,尽量避免异常的发生。 3、NumberFormatException:字符串转换为数字类型时抛出的异常。 在数据类型转换过程中,如果是字符型转换为数字型过程中出现的问题,对于这个异常在Java程序中采用了一个独立的异常,即NumberFormatException.如现在讲字符型的数据“123456”转换为数值型数据时,是允许的。但是如果字符型数据中包含了非数字型的字符,如123#56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理。

相关文档
最新文档