1.8 JAVA异常总结

1.8 JAVA异常分类以及处理

异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。

三种异常:分别为检查性异常(一般异常)、运行时异常(非检查性异常)、错误

Throwable 子类是Error错误类和Exception 异常类、

Exception 子类是IOException 类和 RuntimeException 类。所有的异常类是从 java.lang.Exception 类继承的子类。

详细框架如下图所示。

 

一、Error 错误用来指  示运行时环境发生的错误。

JVM 内存溢出。一般地,程序不会从错误中恢复。

二、 Java 的非检查性异常(运行时异常

错误和非检查异常不可查,通常为JVM异常或错误。

异常描述
ArithmeticException当出现异常的运算条件时,抛出此异常。例如,一个整数"除以零"时,抛出此类的一个实例。
ArrayIndexOutOfBoundsException用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ArrayStoreException试图将错误类型的对象存储到一个对象数组时抛出的异常。
ClassCastException当试图将对象强制转换为不是实例的子类时,抛出该异常。(父类转子类时的类转换异常)
IllegalArgumentException抛出的异常表明向方法传递了一个不合法或不正确的参数。
IllegalMonitorStateException抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。
IllegalStateException在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。
IllegalThreadStateException线程没有处于请求操作所要求的适当状态时抛出的异常。
IndexOutOfBoundsException指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。(数组越界)
NegativeArraySizeException如果应用程序试图创建大小为负的数组,则抛出该异常。
NullPointerException当应用程序试图在需要对象的地方使用 null 时,抛出该异常(空指针异常)
NumberFormatException当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。(ParseException,解析异常)
SecurityException由安全管理器抛出的异常,指示存在安全侵犯。
StringIndexOutOfBoundsException此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小。
UnsupportedOperationException当不支持请求的操作时,抛出该异常。

三、Java 定义在 java.lang 包中的检查性异常(一般异常)类。

这部分异常可查,为程序异常在程序中必须被捕获操作

异常描述
ClassNotFoundException应用程序试图加载类时,找不到相应的类,抛出该异常。(FileNotFindException,没找到文件)
CloneNotSupportedException当调用 Object 类中的 clone 方法克隆对象,但该对象的类无法实现 Cloneable 接口时,抛出该异常。
IllegalAccessException拒绝访问一个类的时候,抛出该异常。
InstantiationException当试图使用 Class 类中的 newInstance 方法创建一个类的实例,而指定的类对象因为是一个接口或是一个抽象类而无法实例化时,抛出该异常。
InterruptedException一个线程被另一个线程中断,抛出该异常。
NoSuchFieldException请求的变量不存在
NoSuchMethodException请求的方法不存在

异常常用方法大体有:1.getMessage()返回关于发生的异常的详细信息、

2.getMessage()返回关于发生的异常的详细信息

3.toString()使用getMessage()的结果返回类的串级名字。

4.printStackTrace()打印toString()结果和栈层次到System.err,即错误输出流。

四、捕获异常

4.1 使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。

多重try/catch

try {
    file = new FileInputStream(fileName);
    x = (byte) file.read();
} catch(FileNotFoundException f) { // Not valid!
    f.printStackTrace();
    return -1;
} catch(IOException i) {
    i.printStackTrace();
    return -1;
}

4.2 throws捕获异常

如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。

4.3 finally 关键字

finally 关键字用来创建在 try 代码块后面执行的代码块。

无论是否发生异常,finally 代码块中的代码总会被执行。

在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。

finally 代码块出现在 catch 代码块最后,语法如下:

 

转载于:https://www.cnblogs.com/Smileing/p/11600960.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDK(Java Development Kit)1.8是一个Java版本,它是由Oracle公司开发的最新版本,提供了一个完整的开发环境,包括编译器、调试器、JVM(Java虚拟机)等。JDK 1.8在功能上相对于以前的版本有很多改进和增强,下面是一些主要的特性: 1. **新的语法特性**:Java 8引入了一些新的语法特性,包括Lambda表达式和函数式接口,这些特性使得Java更接近于一种纯函数式语言。此外,还有Stream API,它使得对集合的操作更加简洁和高效。 2. **增强型集合**:Java 8引入了增强型集合(`java.util.stream`包中的类),这些集合类提供了新的方法来操作集合,如map()、filter()、reduce()等。 3. **日期和时间API**:Java 8引入了一个新的日期和时间API,它简化了对日期和时间的处理,提供了统一的API来处理各种不同的日期和时间数据类型。 4. **模块化系统**:JDK 1.8引入了一个新的模块化系统,它使得开发更小的、可独立部署的Java应用程序变得更加容易。 5. **新的JVM**:JDK 1.8使用了新的JVM(HotSpot虚拟机)版本,它提供了更好的性能和稳定性。 6. **改进的文档和工具**:JDK 1.8包含了改进的文档和工具,包括编译器、调试器、IDE支持等。 要在你的项目中使用JDK 1.8,你需要在你的构建工具(如Maven或Gradle)中设置正确的Java版本。你也可以在你的操作系统中安装JDK 1.8,并在命令行中使用`java -version`命令来检查其是否正确安装和配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值