问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java编程中 常见的异常有哪几种

发布网友 发布时间:2022-04-22 00:38

我来回答

5个回答

懂视网 时间:2022-04-07 21:19

ORA-00904:  invalid column name 无效列名

ORA-00942:  table or view does not exist 表或者视图不存在

ORA-01400:  cannot insert NULL into () 不能将空值插入

ORA-00936: 缺少表达式

ORA-00933: SQL 命令未正确结束

ORA-01722: 无效数字:(一般可能是企图将字符串类型的值填入数字型而造成)

ORA-06530:  ACCESS_INTO_NULL 
      Your program attempts to assign values to the attributes of an uninitialized (atomically  null) object.
企图将值写入未初化对象的属性

ORA-06592:  CASE_NOT_FOUND
     None of th  choice  in the WHEN clauses of a CASE statement is selected,  and there is no  ELSE clause.
case语句格式有误,没有分支语句

ORA-06531:  COLLECTION_IS_NULL
     Your program attempts to apply collection methods othe  than EXIST  to an uninitialized(atomically  null) nested table or varray, or th  program attempts to assign values to the elements of an  uninitialized nested table  or  varray.
企图将集合填入未初始化的嵌套表中

ORA-06511:  CURSOR_ALREADY_OPEN
     Your program attempts to open an already open cursor. A cursor must be closed before it can  be reopened.  A cursor FOR loop automatically opens the cursor to which it refers. So, your  program cannot open that cursor inside  the  loop.
企图打开已经打开的指针.指针已经打开,要再次打开必须先关闭.

ORA-00001:  DUP_VAL_ON_INDEX
     Your program attempts to store duplicate values in a database column that is constrained by  a unique index.
数据库字段存储重复,主键唯一值冲突

ORA-01001:  INVALID_CURSOR 无效指针
    Your program attempts an illegal cursor operation such as closing an unopened cursor.
非法指针操作,例如关闭未打开的指针

ORA-01722:  INVALID_NUMBER 无效数字
     In a SQL statement, the conversion of a character string into a number fails because the  string does not represent a valid number. (In  procedural statements, VALUE_ERROR is raised.) This exception is also raised when the LIMIT-clause expression in a bulk FETCH  statement does not evaluate to a positive number.
在sql语句中,字符数字类型转换错误,无法将字符串转化成有效数字.此错误也可能因为在limit从句表达式中fetch语句无法对应指定数字

ORA-01017:  LOGIN_DENIED 拒绝访问
     Your program attempts to log on to Oracle with an invalid username and/or password.
企图用无效的用户名或密码登录oracle

ORA-01403:  NO_DATA_FOUND  无数据发现
     A SELECT INTO statement returns no rows, or your program references a deleted element in a  nested table  or an  uninitialized  element  in  an  index-by  table.  SQL  aggregate  functions  such  as  AVG  and  SUM  always  return  a value or a null.  So, a SELECT INTO statement that calls an aggregate function  never  raises  NO_DATA_FOUND. The FETCH statement is  expected to return no rows eventually, so when that happens, no exception is raised.
  
ORA-01012:  NOT_LOGGED_ON   未登录
     Your program issues  a database call without being connected to Oracle.
程序发送数据库命令,但未与oracle建立连接
  
ORA-06501:  PROGRAM_ERROR  程序错误
     PL/SQL  has  an  internal  problem.
pl/sql系统问题
  
ORA-06504:  ROWTYPE_MISMATCH  行类型不匹配
    The  host  cursor  variable  and  PL/SQL  cursor  variable  involved  in  an  assignment  have  incompatible  return  types.
For example, when an open host cursor variable is passed to a stored  subprogram, the return types of the actual and formal parameters must be compatible. 
  
ORA-30625:  SELF_IS_NULL  
     Your  program  attempts  to  call  a  MEMBER  method  on  a  null  instance.  That  is,  the  built-in  parameter  SELF (which  is  always  the  first  parameter  passed  to  a  MEMBER  method)  is  null.
  
ORA-06500:  STORAGE_ERROR  存储错误
     PL/SQL runs out of memory  or memory has been corrupted.
PL/SQL运行内存溢出或内存冲突
      
ORA-06533:  SUBSCRIPT_BEYOND_COUNT   子句超出数量
      Your program references a nested table or varray element using an index number larger than the number of elements in  the collection.
  
ORA-06532:  SUBSCRIPT_OUTSIDE_LIMIT   子句非法数量
Your program references a nested table or varray element using an index number (-1  for  example)  that  is outside  the  legal  range.
  
ORA-01410:  SYS_INVALID_ROWID   无效的字段名
   The conversion  of  a  character  string  into  a  universal  rowid  fails  because  the  character  string  does  not represent  a  valid  rowid. 
  
ORA-00051:  TIMEOUT_ON_RESOURCE    资源等待超时
A time-out occurs while Oracle is waiting for a resource. 
  
ORA-01422:  TOO_MANY_ROWS    返回超过一行
A SELECT INTO statement returns more  han one row.
  
ORA-06502:  VALUE_ERROR   值错误
An arithmetic, conversion, truncation, or size-constraint error occurs. For example, when  your program selects a column value into a character  variable, if the value is  longer  than  the  declared  length  of  the  variable, PL/SQL aborts the assignment and raises VALUE_ERROR.  In procedural statements,  VALUE_ERROR  is raised if the conversion of a character string into a number fails.  (In SQL statements, INVALID_NUMBER is raised.) 
  
ORA-01476:  ZERO_DIVIDE  除0错误
Your program attempts to divide a number by zero. 

常见SQLException异常

标签:

热心网友 时间:2022-04-07 18:27

相信作为程序员的我们在对程序进行编译过程中经常会遇到错误,或者在运行过程中出现错误,在这里主要跟大家谈谈经常遇到的一些异常与错误,以及解决办法。

 

异常是指程序在编译或运行过程出现的错误。

在java.lang包中Throwable包含了所有的异常。

Error (错误) 和Exception(异常)

(1)Error(错误)

一旦发生无法修复,但可以避免发生。

常见错误类:

IOError:I/O错误,当发生严重的I/O错误时,抛出此错误。
VirtualMachineError :虚拟机错误,当 Java 虚拟机崩溃或用尽了它继续操作所需的资源时,抛出该错误。

StackOverflowError:栈内存满了,当应用程序递归太深而发生堆栈溢出时,抛出该错误。

OutofMemoryError:堆内存满了,因为内存溢出或没有可用的内存提供给垃圾回收器时,Java 虚拟机无法分配一个对象,这时抛出该异常。

以上是一些常见的错误,在Error类中还有一些别的错误(参照文件Java.lang.Throwable.Error).

(2)Exception(异常)

一旦发生,可以捕获并处理,不会导致程序终止,有时可以避免有时无法避免。

异常的分类:

1.编译时异常(需要强制处理)       2.运行时异常(不需要强制处理)

常见的异常有:

IOException:输入输出流异常
FileNotFoundException:文件找不到的异常
ClassNotFoundException:类找不到的异常
DataFormatException:数据格式化异常
NoSuchFieldException:没有匹配的属性异常
NoSuchMethodException:没有匹配的方法异常

SQLException:数据库操作异常
TimeoutException:执行超时异常

常见的运行时异常:

RuntimeException:运行时异常
NullPointerException:空指针异常

ArrayIndexOutofBoundsException:数组越界异

ClassCastException:类型转换异常
IllegalArgumentException:非法的参数异常
InputMismatchException:输入不匹配

以上是常见的一些异常,另外还有别的异常,参见文件:Java.lang.Throwable.Exception

既然我们常常会遇到一些异常,那我们如何来处理这些异常就是一个急需解决的事情。

(1) 如何处理编译时异常?

方法一:将需要处理的代码块放在一个try...catch...中
try{
//需要处理异常的代码
}catch(XXXException ef){
ef.printStackTrace();
}

我们方法一就是要将我们不确定的代码放入try......catch中,先进行try一下,如果没有异常,则不会触发catch,没有输出,一旦出现异常,那么catch就会工作,在catch中捕获异常信息,根据异常信息进行补救措施。

如以下代码:

 方法二:在出现异常的方法上直接向上抛出异常,throws

void ff() throws XXXException{

}

将出现的异常的代码中,放入如上的方法中,就会将异常抛给该方法的上一级,在主函数上继续向上抛,最终抛给JVM java虚拟机,让JVM来解决该问题。

如代码:

 注意:在catch和throws的时候如果不确定是什么异常,就直接写一个Exception.

(2) 如何处理运行时异常?

1.一般情况下,运行时异常是不用处理的 
2.在某些情况下,如果对发生异常的结果进行处理,也可以对运行时异常进行try...catch...

以上就是一些我们处理编译时异常和运行时异常的方法。

在程序出现异常时,有时候我们可以自定义异常,以便我们能够发现是什么异常。

那么如何自定义异常??

1.当运行时,程序出现意外,可以抛出异常对象来结束程序
如:

//抛出运行时异常对象
RuntimeException ef = new RuntimeException("下标越界!index:"+index+" ,size:"+size());
throw ef;

2.对于编译时异常,同样可以抛出异常对象
但在方法定义时候必须加上throws

如:
public void test(int t) throws Exception{
if (t < 0 || t > 100) {
Exception ef = new Exception("数据错误");
throw ef;
}
}

例如:

 运行结果:

 从结果可以看出,我们在输入数据的时候出现错误,这样通过自定义异常能够让我们更直接快速的找到运行或编译时的异常。

在上述中我们分别提到了三种throw,分别是Throwable,Throws以及throw,那么到底三者有什么区别?

Throwable:是指在在Java.lang包中的一个类,其包含了所有的异常和错误,其中类Error和Exception 是它

的子类。

Thows:是指在解决编译时异常,将方法中异常抛给上一级,在方法后面要加Throw Exception来进行抛。

throw:是指在自定义异常时,如果方法出现异常,那么将作为引用方法的对象抛出。即抛出异常。

希望对您有所帮助!~

热心网友 时间:2022-04-07 19:45

作为程序员在程序开发的过程中难免的要出现一些不是自己水平问题二出现的一些常见的错误。本文就为大家介绍一些常见在Java开发过程中遇见的一些常见的错误。
一、常见错误1:多次拷贝字符串
测试所不能发现的一个错误是生成不可变(immutable)对象的多份拷贝。不可变对象是不可改变的,因此不需要拷贝它。最常用的不可变对象是String。
二、常见错误2:没有克隆(clone)返回的对象
封装(encapsulation)是面向对象编程的重要概念。不幸的是,Java为不小心打破封装提供了方便——Java允许返回私有数据的引用(reference)。
三、常见错误3:不必要的克隆
四、常见错误4:自编代码来拷贝数组
五、常见错误5:拷贝错误的数据
有时候程序员知道必须返回一个拷贝,但是却不小心拷贝了错误的数据
六、常见错误6:检查new 操作的结果是否为null
检查当然没什么错误,但却不必要,if和throw这两行代码完全是浪费,他们的唯一功用是让整个程序更臃肿,运行更慢。
七、常见错误7:用== 替代.equals
在Java中,有两种方式检查两个数据是否相等:通过使用==操作符,或者使用所有对象都实现的.equals方法。原子类型(int, flosat, char 等)不是对象,因此他们只能使用==操作符
八、常见错误8:混淆原子操作和非原子操作
Java保证读和写32位数或者更小的值是原子操作,也就是说可以在一步完成,因而不可能被打断,因此这样的读和写不需要同步。
九、常见错误9:在catch 块中作清除工作
十、常见错误10: 增加不必要的catch 块
一些开发者听到try/catch块这个名字后,就会想当然的以为所有的try块必须要有与之匹配的catch块。
C++程序员尤其是会这样想,因为在C++中不存在finally块的概念,而且try块存在的唯一理由只不过是为了与catch块相配对。

热心网友 时间:2022-04-07 21:19

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

类型不存在异常。当应用试图

热心网友 时间:2022-04-07 23:11

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 倒车影像白屏是怎么办 索尼ccd数码相机t5如何设置定时拍照功能? 索尼wx350相机怎么设置定时拍照 客车倒车影像白屏怎么回事? 倒车影像有时候翻白屏是什么原因?有谁知道 索尼全画幅微单A7RM3可以设置定时拍摄吗? 导航、倒车影像显示白屏? 2020广东开平市事业单位招聘报考条件是什么? 倒车影像没有图像是什么原因,怎样处理? 红曲粉怎么做卤肉,30斤猪肉要用多少红曲粉,要用纱... 广东省事业单位公开招聘人员体检通用标准 红曲粉的用法 请问倒车影像白屏,其他的都正常,怎么回事? sony微单如何设置倒计时拍摄? 索尼a5000微单拍照怎么定时 红曲粉放卤水当颜色可以吗? 2020广东广州市黄埔区|广州开发区事业单位招聘报名... 请问用红曲粉怎么给卤肉上色,比例是多少,我一次... 怎样用红曲粉给卤肉上色 陈姓,起名,不要明星的名字,不要太奇怪的名字 sony微单如何设置倒计时拍摄 红曲粉是怎样用来烧肉的? 途观车六碟cd带倒车影像白屏了怎么办 卤菜中红曲米的使用方法及配比 索尼微单反ilce6000y怎样自拍? 汽车显示频导航和倒车影像突然白屏 索尼a6000微单怎么定时照相 倒车影像有时候白屏有时候正常 索尼a72定时拍照怎么关闭 sony数码相机怎么设置定时拍照 凯立德导航倒车和导航有影像主界面白屏进不去怎么回事 倒车影像黑屏怎么解决? 索尼单反遥控器如何设置相机 目前的标准工时软件有哪些? 荣威350倒车影像第一下白屏是怎么回事? 索尼a6000如何取消定时设置 倒车影像刚启动时出现白屏现象怎么办 柠檬怎么泡茶 对于标准工时,请问哪个软件好? 天籁倒车影像白屏怎么回事