「java异常表」java所有异常
今天给各位分享java异常表的知识,其中也会对java所有异常进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java异常分类
一、概念
如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下
会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用
这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。
二、异常分类
Throwable 是 Java 语言中所有错误或异常的超类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。
实例分为 Error 和 Exception 两种。
2.1、Error
Error 类是指 java 运行时系统的内部错误和资源耗尽错误。应用程序不会抛出该类对象。如果
出现了这样的错误,除了告知用户,剩下的就是尽力使程序安全的终止。
2.2、Exception
Exception 又有两个分支 , 一个是运行时异常 RuntimeException , 一 个是检查异常 CheckedException。
RuntimeException 如 :NullPointerException 、 ClassCastException ;
CheckedException 如: I/O 错误导致的 IOException、SQLException。
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 如果出现 RuntimeException,那么一
定是程序员代码书写导致的错误.
CheckedException:一般是外部错误,这种异常都发生在编译阶段,Java 编译器会强
制程序去捕获此类异常,即会出现要求你把这段可能出现异常的程序进行 try catch,该类异常一
般包括几个方面:
试图在文件尾部读取数据
试图打开一个错误格式的 URL
试图根据给定的字符串查找 class 对象,而这个字符串表示的类并不存在
三、异常的处理方式
3.1、不处理
遇到异常问题不进行具体处理,而是继续抛给调用者 (throw,throws)
抛出异常有三种形式,一是 throw,再就是 throws,还有一种系统自动抛异常。
public static void main(String[] args) {
String s = "abc";
if(s.equals("abc")) {
/** 手动抛出一个数字格式化异常 **/
throw new NumberFormatException();
} else {
System.out.println(s);
}
}
int div(int a,int b) throws Exception{
return a/b;
}
3.2、处理
try catch 捕获异常针对性处理方式
四、Throw 和 throws 的区别
throws 用在函数上,后面跟的是异常类,可以跟多个;
语法:(修饰符)(方法名)([参数列表])[throws(异常类)]{……}
public void doA(int a) throws Exception1,Exception3{……}
throw 用在函数内,后面跟的是异常对象。
throws E1,E2,E3只是告诉程序这个方法可能会抛出这些异常,方法的调用者可能要处理这些异常,而这些异常E1,E2,E3可能是该函数体产生的。
throw则是明确了这个地方要抛出这个异常。
结合来看:
void doA(int a) throws IOException,{
try{
......
}catch(Exception1 e){
throw e;
}catch(Exception2 e){
System.out.println("出错了!");
}
if(a!=b)
throw new Exception3("自定义异常");
}
throws 用来声明异常,让调用者知道该功能可能会出现的问题(比如上方的 IO 异常),可以给出预先的处理方式;
throw 抛出具体的问题对象,执行到 throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者。
也就是说 throw 语句独立存在时,下面不要定义其他语句,因为执行不到。
概括:
throws 表示出现异常的一种可能性,并不一定会发生这些异常;
throw 则是抛出了异常,执行 throw 则一定抛出了某种异常对象。
五、总结
了解 Exception、Error 两种异常的区别,面试可能会问。
区分 throws、throw使用维度。
java中常见的异常类
从异常类的继承架构图中可以看出:Exception 类扩展出数个子类,其中 IOException、RunntimeException 是较常用的两种。
习惯上将 Error 与 Exception 类统称为异常类,但这两者本质上还是有不同的。Error 类专门用来处理严重影响程序运行的错误,可是通常程序设计者不会设计程序代码去捕捉这种错误,其原因在于即使捕捉到它,也无法给予适当的处理,如 JAVA 虚拟机出错就属于一种 Error。
不同于 Error 类,Exception 类包含了一般性的异常,这些异常通常在捕捉到之后便可做妥善的处理,以确保程序继续运行,如 TestException7_2 里所捕捉到的 ArrayIndexOutOfBoundsException 就是属于这种异常。
RunntimeException 即使不编写异常处理的程序代码,依然可以编译成功,而这种异常必须是在程序运行时才有可能发生,例如:数组的索引值超出了范围。
与RunntimeException 不同的是,IOException 一定要编写异常处理的程序代码才行,它通常用来处理与输入/输出相关的操作,如文件的访问、网络的连接等。
当异常发生时,发生异常的语句代码会抛出一个异常类的实例化对象,之后此对象与 catch 语句中的类的类型进行匹配,然后在相应的 catch 中进行处理。
扩展资料:
Java异常的分类:
Java标准裤内建了一些通用的异常,这些类以Throwable为顶层父类。
Throwable又派生出Error类和Exception类。
错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。因此,程序员应该关注Exception为父类的分支下的各种异常类。
异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。
参考资料:百度百科-异常
常见的java异常有哪些 都是什么意思
空指针异常类:NullPointerException
当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出 null等等。
类型强制转换异常:ClassCastException
假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出 该异常。该异常经常被称为强制类型转换异常。
数组下标越界异常:ArrayIndexOutOfBoundsException
当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
文件未找到异常:FileNotFoundException
当试图去引用一个路径下的某个文件而该路径下没有文件时,抛出该异常。
数字格式异常:NumberFormatException
当试图将一个String转换为指定的数字类型,而该字符串却不满足数字类型要求的格式时,抛出该异常。
数据库操作异常:SQLException
当执行一段SQL语句或该SQL不符合规则时抛出该异常。
输入输出流异常:IOException
Java中常见异常有哪些
算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
java系统中异常类共有多少?
这个问题好笼统啊!
要说异常可以简单的这样分一下:
JAVA的所有异常的基类为Exception,所有的错误基类为Error。因为Exception是程序员经常使用,并且遇到的,所以使用的最多的也就只是Exception类以及它的子类。
如果要说多少,API里面有找一下Exception类,然后看一下他的所有已知子类就可以知道是多少了。
这里要说一下,在JAVA中,存在两种异常状态。一种异常信息叫做“检查异常(checked exception)”,另一种叫做“运行时异常(runtime exception)”。
检查异常:
看一下下面的代码:
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundException ce){
}
Class.forName方法有可能抛出一个ClassNotFoundException异常,需要程序员强制进行捕获,并进行异常处理。我们说这种异常信息叫做“检查异常”,这些异常类通常都是Exception类的子类。
运行时异常:
看下面的代码:
Integer.parseInt("10");
Integer.parseInt方法同样也会抛出一个异常NumberFormatException,但是我们会发现,这个异常不需要我们强制进行异常捕获。这种异常就叫做运行时异常。而这些异常类,通常是RuntimeException类的子类。(RuntimeException也是Exception的子类)
楼主如果是走JavaEE方向的,那么以后在学习Hibernate,Spring,Struts这些框架的时候,就会发现。这些框架把所有的“检查异常”都转换成了“运行时异常”。
常见JAVA运行时异常有哪些?
1、五种常见的异常:ClassCastException(类转换异常)、IndexOutOfBoundsException(数组越界异常)、NullPointerException(空指针异常)、ArrayStoreException(数据存储异常,操作数组时类型不一致)、BufferOverflowException(还有IO操作的,缓冲溢出异常)。
2、java运行时异常是可能在java虚拟机正常工作时抛出的异常。java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption)。
检查式异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。
运行时异常:我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。
扩展资料:
Java特点
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载和多继承特征,并且不使用主文件,免去了预处理程序。
因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
参考资料:百度百科-Java
关于java异常表和java所有异常的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。