写点什么

Java 里面的异常

  • 2022 年 4 月 14 日
  • 本文字数:1632 字

    阅读完需:约 5 分钟


[](()一、异常概述




Exception 类是 Throwable 类的子类。它是因编程错误或由于偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。


除了 Exception 类外,Throwable 还有一个子类 Error


Error 是指运行时环境发生的错误,Java 虚拟机无法解决的严重问题 。


例如,JVM 内存溢出。一般地,程序不会从错误中恢复, 一般不编写针对性


的代码进行处理。


异常类有两个主要的子类:IOException 类和 RuntimeException 类。



(此图片来源于网络)


[](()二、编译时异常




编译时异常也称为受检异常


是指编译器要求必须进行处理的异常。即程序在运行时由于外界因素造成的一般性异常。


package com.zxy.java.exception;


import java.io.File;


import java.io.FileInputStream;


import java.io.FileReader;


import java.io.IOException;


/**


  • @Description: FileNotFoundException

  • @Author: zhangxy

  • @Date: Created in 2019/11/20

  • @Modified By:


*/


public class ExceptionTest1 {


public static void main(String[] args) {


FileReader fileReader = null;


try {


// 实例化 File 对象


File file = new File("test.txt");


// 实例化 FileReader 流,用于数据的读入


fileReader = new FileReader(file);


// 读入数据


char[] chars = new char[5];


int length;


while ((length = fileReader.read(chars)) != -1) {


String s = new Str 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 ing(chars, 0, length);


System.out.println(s);


}


} catch (IOException e) {


e.printStackTrace();


} finally {


// 不再使用的时候,关闭流资源


if (fileReader != null) {


try {


fileReader.close();


} catch (IOException e) {


e.printStackTrace();


}


}


}


}


}


测试结果:


java.io.FileNotFoundException: test.txt (系统找不到指定的文件。)


at java.io.FileInputStream.open0(Native Method)


at java.io.FileInputStream.open(FileInputStream.java:195)


at java.io.FileInputStream.<init>(FileInputStream.java:138)


at java.io. Java 开源项目【ali1024.coding.net/public/P7/Java/git】 FileReader.<init>(FileReader.java:72)


at com.zxy.java.exception.ExceptionTest1.main(ExceptionTest1.java:21)


[](()三、运行时异常




运行时异常也被称作非受检异常


是指编译器不要求必须处理的异常。一般是指编程时的逻辑错误。

[](()1.空指针异常

当程序运行时,对象未初始化或为空时,将会抛出空指针异常。


package com.zxy.java.exception;


/**


  • @Description: NullPointerException

  • @Author: zhangxy

  • @Date: Created in 2019/11/20

  • @Modified By:


*/


public class ExceptionTest2 {


public static void main(String[] args) {


String s = "HelloWorld";


s = null;


System.out.println(s.charAt(1));


}


}


测试结果:


Exception in thread "main" java.lang.NullPointerException


at com.zxy.java.exception.ExceptionTest2.main(ExceptionTest2.java:13)

[](()2. 数组下标越界异常

指使用非法索引访问数组。索引为负值或大于或等于数组的大小。将会抛出数组下标越界异常。


package com.zxy.java.exception;


/**


  • @Description: ArrayIndexOutOfBoundsException

  • @Author: zhangxy

  • @Date: Created in 2019/11/20

  • @Modified By:


*/


public class ExceptionTest3 {


public static void main(String[] args) {


int[] array = new int[5];


System.out.println(array[6]);


}


}

最后

做任何事情都要用心,要非常关注细节。看起来不起眼的、繁琐的工作做透了会有意想不到的价值。当然要想成为一个技术大牛也需要一定的思想格局,思想决定未来你要往哪个方向去走, 建议多看一些人生规划方面的书籍,多学习名人的思想格局,未来你的路会走的更远。


更多的技术点思维导图我已经做了一个整理,涵盖了当下互联网最流行 99%的技术点,在这里我将这份导图分享出来,以及为金九银十准备的一整套面试体系,上到集合,下到分布式微服务






用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
Java 里面的异常_Java_爱好编程进阶_InfoQ写作平台